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()로 가져오면 끝.