본문 바로가기

나는개발자다!!/자바 Spring

iBatis 자동 생성키 썰

PK(Primary Key)나 자동생성 값이 필요하거나 Insert전에 select가 필요한 경우에 Ibatis에서 유용하게 사용할 수 있는 기능이다.

※ insert 시에 가능한 방법으로 update시(수정시)에도 사용하고 싶다면 설계 자체를 update가 아닌 insert로 짜면 된다.


Oracle용 자동 생성 방법

 - 오라클은 auto increament 같은 명령어로 생성이 아닌 Sequence를 생성해서 사용하는 방법으로 자동 생성 값을 만들어낸다.

<insert id="네임스페이스" parameterClass="파라미터클래스">

<selectKey resultClass="int" keyProperty="id" >

SELECT 시퀀스명.NEXTVAL AS ID FROM DUAL

</selectKey>

insert into 테이블(칼럼1,칼럼2)

values (#id#,#파라미터#)

</insert>


위의 seq를 사용하는 방법에서 trigger를 같이 사용해준다면 

mysql이나 mariadb에서의 auto increment처럼 사용이 가능하다.



MySQL용 자동 생성 방법

<insertid="insertProduct-MYSQL"parameterClass="product">

insert into PRODUCT (PRD_DESCRIPTION)  values (#description#)  

<selectKeyresultClass="int"type="post"keyProperty="id">

select LAST_INSERT_ID() as value  

<selectKey>

<insert> 


MSSQL용 자동 생성 방법

<insert id="insertProduct-MS-SQL" parameterClass="com.domain.Product">

insert into PRODUCT (PRD_DESCRIPTION) values (#description#)

<selectKey resultClass="int" keyProperty="id" >

SELECT @@IDENTITY AS ID

</selectKey>

</insert>