반응형
다음 우편번호, 주소 가져오기
create.jsp
중간에 우편번호, 상세 주소 추가
<p>
<input type="text" name="postNum" id="postNum" readonly placeholder="우편번호" />
<button type="button" id="btnPost">우편번호 검색</button>
</p>
<p>
<input type="text" name="empAddress" id="empAddress" placeholder="직원 주소" />
<code><form:errors path="empAddress" /></code>
</p>
<p>
<input type="text" name="empAddress2" id="empAddress2" placeholder="직원 상세 주소" />
</p>
상단에 script 추가
<script src="https://ssl.daumcdn.net/dmaps/map_js_init/postcode.v2.js"></script>
script에 추가
$(function(){
//다음 우편번호 검색
$("#btnPost").on("click",function(){
new daum.Postcode({
//다음 창에서 검색이 완료되면 콜백함수에 의해 결과 데이터가 data 객체로 들어옴
oncomplete:function(data) {
$("#postNum").val(data.zonecode);
$("input[name='empAddress']").val(data.address);
$("#empAddress2").val(data.buildingName);
}
}).open();
});
});
오라클 계층형 쿼리
- 예시1
테이블 생성 및 데이터 삽입
--계층형 쿼리 연습
CREATE TABLE BOM (
ITEM_ID INTEGER NOT NULL, -- 품목식별자
PARENT_ID INTEGER, -- 상위품목 식별자
ITEM_NAME VARCHAR2(20) NOT NULL, -- 품목이름
ITEM_QTY INTEGER, -- 품목 개수
PRIMARY KEY (ITEM_ID)
);
INSERT INTO BOM VALUES ( 1001, NULL, '컴퓨터', 1);
INSERT INTO BOM VALUES ( 1002, 1001, '본체', 1);
INSERT INTO BOM VALUES ( 1003, 1001, '모니터', 1);
INSERT INTO BOM VALUES ( 1004, 1001, '프린터', 1);
INSERT INTO BOM VALUES ( 1005, 1002, '메인보드', 1);
INSERT INTO BOM VALUES ( 1006, 1002, '랜카드', 1);
INSERT INTO BOM VALUES ( 1007, 1002, '파워서플라이', 1);
INSERT INTO BOM VALUES ( 1008, 1005, 'CPU', 1);
INSERT INTO BOM VALUES ( 1009, 1005, 'RAM', 1);
INSERT INTO BOM VALUES ( 1010, 1005, '그래픽카드', 1);
INSERT INTO BOM VALUES ( 1011, 1005, '기타장치', 1);
SELECT ITEM_ID, PARENT_ID, ITEM_NAME, ITEM_QTY
FROM BOM
START WITH PARENT_ID IS NULL
CONNECT BY PRIOR ITEM_ID = PARENT_ID;
--TREE JS
SELECT ITEM_ID, PARENT_ID,
LEVEL,
LPAD('ㄴ',LEVEL) LVL,
ITEM_NAME, ITEM_QTY
FROM BOM
START WITH PARENT_ID IS NULL
CONNECT BY PRIOR ITEM_ID = PARENT_ID;
- 예시2
테이블 생성 및 데이터 삽입
CREATE TABLE FREE_BOARD(
NO NUMBER,
TITLE VARCHAR2(90),
WRITER VARCHAR2(60),
P_NO NUMBER,
CONSTRAINT PK_FB PRIMARY KEY(NO)
);
Insert into FREE_BOARD (NO,TITLE,WRITER,P_NO) values (1,'여름은 더워','홍길동',null);
Insert into FREE_BOARD (NO,TITLE,WRITER,P_NO) values (2,'맞아 더워','김철수',1);
Insert into FREE_BOARD (NO,TITLE,WRITER,P_NO) values (3,'그래서 여름이지','홍길동',1);
Insert into FREE_BOARD (NO,TITLE,WRITER,P_NO) values (5,'정말 그래','노홍철',3);
Insert into FREE_BOARD (NO,TITLE,WRITER,P_NO) values (8,'그래 정말','지상철',4);
Insert into FREE_BOARD (NO,TITLE,WRITER,P_NO) values (9,'말장난 하지마','노홍철',4);
Insert into FREE_BOARD (NO,TITLE,WRITER,P_NO) values (10,'말장난 좋은걸','지상철',4);
Insert into FREE_BOARD (NO,TITLE,WRITER,P_NO) values (6,'그러게','하정우',3);
Insert into FREE_BOARD (NO,TITLE,WRITER,P_NO) values (7,'가을아 와라','김진수',3);
Insert into FREE_BOARD (NO,TITLE,WRITER,P_NO) values (4,'그래도 여름이 좋아','박명수',1);
SELECT NO
, LPAD('ㄴ',2*(LEVEL-1)) || TITLE
, WRITER, P_NO
FROM FREE_BOARD
START WITH P_NO IS NULL
CONNECT BY PRIOR NO = P_NO;
--CONNECT BY PRIOR 자식 컬럼 = 부모 컬럼 : 부모 → 자식 순방향 전개
반응형
'스프링 프레임워크' 카테고리의 다른 글
[스프링 프레임워크] 32장 연습 (0) | 2024.05.22 |
---|---|
[스프링 프레임워크] 31장 sweetalert, 모달, 사진 파일 D드라이브에 저장 (0) | 2024.05.21 |
[스프링 프레임워크] 29장 자동 로그인, 스프링 시큐리티 애너테이션 (1) | 2024.05.20 |
[스프링 프레임워크] 28장 스프링 시큐리티2 (0) | 2024.05.17 |
[스프링 프레임워크] 27장 스프링 시큐리티1 (0) | 2024.05.16 |