Persistence Framework/SQL Mapper-Mybatis

selectkey 사용방법

prden 2021. 6. 4. 09:19

1. 사용 예시

<insert id="insertBoard" parameterType="com.legalcounsel.Board.BoardVO">
        <selectKey resultType="String" keyProperty="brdno" order="BEFORE">
            SELECT IFNULL(MAX(BRD_NO)),0)+1 FROM BOARD
        </selectKey>
        INSERT INTO BOARD(BG_NO, BRD_NO, BRD_TITLE, USER_ID, BRD_MEMO, BRD_NOTICE, BRD_DATE, BRD_DELCHECK, LAST_DATE, LAST_USER_ID)
        VALUES (#{bgno}, #{brdno}, #{brdtitle}, #{userno}, #{brdmemo}, #{brdnotice}, NOW(), 'N', NOW(), #{userno} )
 </insert>

<selectKey 부분에서 order가 berfore니까 selectKey구문 먼저 실행된 후 결과 값을 keyProperty인 brdno에 넘겨주어서 Insert문을 실행한다. selectkey구문 안에 max를 통해 추출한 값이 null이면 default로 0을 넣으준다. 

 

2. 사용되는 경우 

 1) AUTO_INCREMENT가 적용되지 않은 테이블에 id를 계산해서 넣고 싶은 경우

 2) AUTO_INCREMENT가 적용된 테이블에 삽입된 데이터의 id를 바로 조회하여 바로 다른 테이블에 삽입하고자 하는 경우

'Persistence Framework > SQL Mapper-Mybatis' 카테고리의 다른 글

동적 쿼리 foreach문  (0) 2021.06.03
Mybatis-spring 모듈  (0) 2021.05.02
마이바티스 설정 파일(mybatis-config.xml)  (0) 2021.05.01