IBATIS/myBatis
2017.04.27 / 19:42

MyBatis Insert ÀÚµ¿ Áõ°¡°ª °¡Á®¿À±â

Scoda
Ãßõ ¼ö 177

DB¿¡¼­ÀÇ ÀÚµ¿ Áõ°¡°ªÀº ¼ýÀÚÇü½ÄÀ¸·Î »ç¿ëÀÚ°¡ ÇØ´çÄ÷³À» Á¦¿ÜÇÏ°í Insert ½Ã¿¡ ¼³Á¤µÈ °ªÀÌ ÀÚµ¿À¸·Î µé¾î°£´Ù.
DBMSÀÇ Á¾·ù¿¡ µû¶ó ±× ¸íĪÀÌ ´Ù¸¥µ¥ MsSqLÀÇ °æ¿ì identity ¶ó°í ºÒ¸®¿ì¸ç MySQL¿¡¼­´Â autoincrement ¶ó°í ºÒ¸®¿î´Ù.

MyBatis¸¦ ÀÌ¿ëÇÏ¿© DB¿¡ Insert½Ã¿¡ ÀÚµ¿Áõ°¡µÈ °ªÀÌ ÀÖÀ»°æ¿ì Select Key¸¦ È°¿ëÇÏ¿© ÀÚµ¿ Áõ°¡µÈ °ªÀ» ¾Ë ¼ö ÀÖ´Ù.
»ç¿ëÀÚ°¡ ÀÛÀº ½Ã½ºÅÛÀ̶ó¸é InsertÈÄ °¡Àå ÃÖ±ÙÀÇ °ªÀ» º°µµ·Î È£ÃâÇÏ¿© »ç¿ëÇÒ ¼ö ÀÖ°ÚÁö¸¸, ¸¸¾à »ç¿ëÀÚ°¡ ¸¹Àº ½Ã½ºÅÛÀ̶ó¸é
InsertÈÄ max °ªÀ» ã´Â ÇàÀ§´Â ¾ÆÁÖ À§ÇèÇÏ´Ù°í ÇÒ ¼ö ÀÖ´Ù. ±× ÀÌÀ¯´Â ¸¹Àº »ç¿ëÀÚ°¡ »ç¿ëµÉ °æ¿ì º»ÀÎÀÌ insert ÇÑ µ¥ÀÌÅÍ ¿Ü¿¡ ŸÀÎÀÌ »ðÀÔÇÑ µ¥ÀÌÅÍÀÇ max °ªÀ» °¡Á®¿Ã ¼ö Àֱ⠶§¹®ÀÌ´Ù.

»ç½Ç »ç¿ëÀÚ°¡ Àû´õ¶óµµ Insert ÈÄ Select Äõ¸®¸¦ ÅëÇÑ max°ª ã±â´Â ÁÁÀº ¹æ¹ýÀº ¾Æ´Ï´Ù.


SelectKeyÀÇ È°¿ëÀº ¾Æ·¡¿Í °°ÀÌ ÇÏ¸é µÈ´Ù.


¾Æ·¡´Â TB_testÀÇ Å×ÀÌºí¿¡ µ¥ÀÌÅ͸¦ InsertÇÏ´Â ±¸¹®ÀÌ´Ù.
TB_TEST´Â seq, name, age Ä÷³À¸·Î ±¸¼ºµÇ¾î ÀÖÀ¸¸ç seq´Â ¼ýÀÚ Çü½ÄÀ¸·Î µÈ PKÀ̸ç autoincrement ¼³Á¤ÀÌ µÇ¾î ÀÖ´Ù.

<insert id="insTest">

    <selectKey keyProperty="seq" resultType="int" order="after">
        SELECT last_insert_id()
    </selectKey>

    INSERT INTO TB_TEST(name, age) VALUES('È«±æµ¿', '22')

</insert>



¼Ò½º´Ü¿¡¼­ »ç¿ë½Ã¿¡´Â ¾Æ·¡¿Í °°ÀÌ »ç¿ëÇÏ¸é µÈ´Ù.

int nowSeq = sqlSession.insert("insTest");



Ãâó: http://fruitdev.tistory.com/115 [°úÀÏ°¡°Ô °³¹ßÀÚ]