ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • insert 된 그 PK를 가져오기
    마이바티스 2018. 5. 20. 09:42

    <insert id="insertData" parameterType="DataClass" useGeneratedKeys="true"   


      keyProperty="id">




         /* query */




    </insert>


    =======================================예제==================================


    <insert id="insertStudents">

      <selectKey keyProperty="id" resultType="int" order="BEFORE">

        select SEQ_ID.nextval FROM DUAL

      </selectKey>

      insert into Students

        (id, name , email)

      values

        (#{id}, #{name}, #{email})

    </insert>




    ======================================


    항상 테이블의 key값에만 해당하는것이 아니다. key값과는 전혀 상관없는 값도 selectKey 구문으로 리턴할수가 있는데 order옵션을 AFTER로 주고 리턴하고자 하는 값을 명시해주면 된다.

    아래 코드에서는 입력할시 id값을 Sequence에서 가져오는게 아니라 수동으로 넣어주고, 입력했던 id에 맞는 regist_date 값을 리턴받아 위에서처럼 동일하게 값를 가져올수 있다.


    <insert id="insertStudents" parameterType="Student">

      <selectKey keyProperty="regist_date" resultType="java.util.Date" order="AFTER">

        select regist_date FROM students WHERE id = #{id}

      </selectKey>

      insert into Students

        (id, name , email, regist_date)

      values

        (#{id}, #{name}, #{email}, syadate)

    </insert>

Designed by Tistory.