programming/ibatis mybatis

[mybatis] oracle insert 리턴값 받기 selectKey

labj 2014. 10. 23. 14:05

[mybatis] oracle insert 리턴값 받기 selectKey


- insert할 도메인에서는 시퀀스값을 설정하지 않는다.

*java

Authors auth = new Authors();

auth .setAutGender("xxx");

...

auth .setAutInfo("xxx");


- 시퀀스값은 autID로 insert하기전에 order="BEFORE" 먼저 실행시켜서 autID에 담는다.

- insert문에서 autID에 설정된 값으로 insert한다.

*.xml

<insert id="insert" parameterType="Authors">

    <selectKey resultType="java.lang.String" keyProperty="autID" order="BEFORE">
        SELECT SW_LIBRO.F_GET_NEW_AUTHOR_ID FROM DUAL
    </selectKey>


    INSERT INTO AUTHORS ( AUT_I
    D, AUT_GENDER, AUT_NAME, AUT_ENAME, AUT_PROFILE, AUT_INFO, AUT_CREATE_DATE )
    VALUES  ( #{autID}, #{autGender}, #{autName}, #{autEname}, #{autProfile}, #{autInfo}, SYSDATE )

</insert>


- mybatis 쿼리문 호출 후에 리턴값은 성공시 1, 실패시 0이 된다.

- 그리고 selectKey를 통해서 Authors 담겨진 autID를 받아서 이용한다.

*.java

Integer autID = auth .getAutID();


[mybatis] oracle insert 리턴값 받기 selectKey