이제 본론으로.... iBatis를 이용할때 이부분 더 좋게 지원해준다.
<selectKey>를 이용하면 프로그램쪽에서 한번더 select하는 번거로움을 덜어주고 성능면에서도 조금은 도움을 줄것으로 생각된다.
* 키값이 자동증가인 경우 ...
<insert id="insertId">
insert into MEMBER (MBR_ID, NAME) values
( #mbrId#, #name# )
<selectKey keyProperty="memberSeq" resultClass="int">
SELECT LAST_INSERT_ID()
</selectKey>
</insert>
Integer result = sqlMap.insert("insertId", member);
이렇게 처리하면 result에 마지막으로 추가된 키값이 담기게 된다.
* 키값이 자동증가가 아닌경우...
<insert id="insertId">
<selectKey keyProperty="memberSeq" resultClass="int">
SELECT MAX(MBR_SEQ) + 1 FROM MEMBER
</selectKey>
insert into MEMBER (MBR_SEQ, MBR_ID, NAME) values
( #memberSeq#, #mbrId#, #name# )
<selectKey keyProperty="memberSeq" resultClass="int">
SELECT LAST_INSERT_ID()
</selectKey>
</insert>
이와 같이 처리하면 끝.
'프로그래밍 > Database' 카테고리의 다른 글
[mysql] 자동값 증가 시퀀스 대신 inset문에서 해결하기 (0) | 2016.09.22 |
---|---|
[ORACLE] Date형태를 string으로 가져오자. (SQL) (0) | 2016.02.23 |
[ORACLE] 화면에서 넘어온 날짜 - 빼고 INSERT 하기 (0) | 2016.02.23 |
[ORACLE] 데이터가 없으면 insert , 있으면 update (0) | 2016.02.23 |
[XML 표준] mybatis 에서 < 비교연산자 쓰려면 (0) | 2016.02.23 |