MyBatis Oracle 자체 증가 시퀀스 구현 방법

mybatis oracle 자체 시퀀스 코드는 다음과 같습니다.

<insert id=" insert " useGeneratedKeys="true" keyProperty="s_id" parameterType="xxxx" > 
<selectKey resultType="int" order="BEFORE" keyProperty="s_id"> 
SELECT SEQ_TABLE.NEXTVAL FROM dual 
</selectKey> 
INSERT INTO <span style="font-family: Arial, Helvetica, sans-serif;">s_id</span><span style="font-family: Arial, Helvetica, sans-serif;">,name,age</span> 
VALUES 
(#{s_id} #{name}, #{age} ) 
</insert> 
resultType = "int"는 int 형식으로 되돌아옵니다.
keyProperty는 반환값을:parameterType에서 대상의 대상의 속성, 즉 xxxx 클래스의 s_에 부여합니다.id 속성

useGeneratedKeys="true" keyProperty="s_id"
시퀀스 id를 되돌려줍니다. 필요하지 않으면 채우지 않아도 됩니다.
다음은 mybatis 설정oracle의 키 자체 증가
mysql, sqlserver 등 데이터베이스 자체에 키 자체 성장상 auto_increment 기능은 직접 사용할 수 있습니다.
useGeneratedKeys="true"를 사용하여 다음 구성과 같은 작업을 수행합니다.

insert into s_user_auth (id,user_id, user_name) values(#{id},#{userid},#{username})
그러나oracle은 안 된다. oracle 키의 자체 증가는 sequence를 통해 이루어지기 때문에 이런 방식은 안 된다. 사용해야 한다.
1. sequence를 통해 id를 찾아내고 insert

select yoursequence.nextval as id from dual
insert into s_user_auth (id,user_id, user_name) values(#{id},#{userid},#{username})
2. 직접 insertsequence.nextval, 아래

insert into s_user_auth (id,user_id, user_name) values(yoursequence.nextval,#{userid},#{username})

좋은 웹페이지 즐겨찾기