[Oracle]SelectKey_사용하기 (feat. SEQUENCE)
2022. 5. 24. 17:15ㆍ[DB]/[Oracle]_DB
728x90
반응형
구조 : Oracle DB
framework: Mybatis
목적 : SEQUENCE 로 증가되는 PK 를 가진 테이블의 INSERT 후 증가된 PK 가져오기
이유 : 글 작성 table 과 fileupload table 은 별도로 구성되어 있고,
파일 업로드시 게시글 table 의 pk 를 JOIN 하기 위함
조건: JOIN 할 태이블은 SEQUENCE 설정이 되어 있어야 함
시퀀스는 다음글 참고 : https://yn971106.tistory.com/107
Mapper.xml
<insert id="boardWrite" parameterType="java.util.HashMap">
insert into board
(
bno,
title,
content,
writer,
regdate
)
values (
BNO.NEXTVAL,
#{title},
#{content},
#{writer},
SYSDATE
)
<selectKey resultType="int" keyProperty="bno" order="AFTER">
SELECT BNO.CURRVAL FROM board
</selectKey>
</insert>
<selectKey></selectKey> 를 이용하여 사용합니다.
resultType : 리턴값의 자료형
keyProperty : 리턴되는 변수명
order : -> before = select 문이 실행 되기 전에 값을 가져옴
-> after = select 문이 실행 되고나서 값을 가져옴
삽입 후에 해당 num을 가져올 것이기 때문에 after를 사용하였습니다.
파일 업로드 insert 문
<insert id="insertfile">
INSERT INTO board_file(
bnum,
filename,
realname
)values (
#{bno},
#{file_name},
#{real_name}
)
</insert>
keyProperty 명을 mapper에 사용하면 됩니다.
감사합니다.
728x90
반응형
'[DB] > [Oracle]_DB' 카테고리의 다른 글
[Connect by]_ 계층형 쿼리 & 재귀 쿼리 응용 ( 이달의 휴일 구하기 ) (0) | 2022.11.28 |
---|---|
[connect_by]_ORACLE_계층 형 함수 사용(메뉴트리) (0) | 2022.11.21 |
[Oracle]_날자 , 요일 추출_그룹 핑 후 순번 매기기 (2) | 2022.10.25 |
[Oracle]_NVL 사용 (DATE,Number) 비교 (0) | 2022.08.29 |
[Oracle]_SEQUENCE (feat. 테이블 pk) (0) | 2022.05.24 |