본문 바로가기
프로그램/Java

[Mybatis] INSERT 시에 selectKey 값 받아오기

by 로드러너 2014. 2. 26.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

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()