MySQL

MySQL + MyBatis INSERT 성공 후 Primary Key 값 받아오기

홍규홍규 2017. 12. 13. 17:50

테이블에 특정 값들을 Insert하고 성공 시 Insert된 데이터의 Primary Key가 필요한 경우가 있다.

이때는 <selectKey>를 사용하면 된다.

<insert id="insert" parameterType="Member">
    INSERT INTO MEMBER(name, age) VALUES(#{name}, #{age})
    <selectKey resultType="int" keyProperty="no" order="AFTER">
        SELECT LAST_INSERT_ID()
    </selectKey>
</insert>

keyProperty는 VO에 정의한 테이블에 들어가는 컬럼 ID를 넣으면 된다.

따라서 Primary Key 뿐만 아니라 다른 데이터도 가져올 수 있다는 뜻.


order는 순서다. 

특정 값을 이용해 INSERT하려면 당연하게도 INSERT 앞에 위치시키고 BEFORE 명령어를 쓰면 된다.


그러면 insert가 성공하면 MEMBER 객체의 no 변수에 Auto Increment된 값이 저장된다.


member.getNo()로 가져오면 끝.