[Mybatis] INSERT 시에 selectKey 값 받아오기
Mybatis 3.x 부터는 insert()를 하면 적용된 행의 수를 반환한다. selectKey 값을 받아오기 위해서는 호출 시에 전달된 parameterType 객체에 저장된다.
<insert id="" parameterType="java.util.HashMap">
<selectKey keyProperty="project_cd" resultType="String" order="AFTER">
...
</selectKey>
....
</insert>
전달된 HashMap 에 키값 project_cd 로 해서 조회된 selectKey 값이 반환된다.
각 데이터베이스 별로 자동증가 값 불러오는 방법
1. ORACLE : sequence 값
SELECT 시퀀스명.NEXTVAL FROM DUAL;
2. MSSQL : identity 값
SELECT @@IDENTITY
// 현재 세션에서 증가시킨 여러 테이블 중에서 가장 마지막에 증가시킨
// 테이블의 identity 값을 반환
SELECT SCOPE_IDENTITY()
// 현재 세션, 스코프에서 증가시킨 여러 테이블 중에서 가장 마지막에 증가시킨
// 테이블의 identity 값을 반환
SELECT IDENT_CURRENT('테이블명')
// 여러 세션, 스코프에서 증가시킨 특정 테이블의 마지막 identity 값을 반환
3. MYSQL : autoincrement 값
SELECT LAST_INSERT_ID()