Ibatisがデータを挿入してIDを返す方法

1573 ワード

ibatisがデータを挿入してIDを返す方法:
主にselctkeyを利用してこのID値を取得しますが、oracleとmysqlの違いは大きいです.
oracleの使い方
 <insert id="insertOperation">
   < selectKey resultClass="long" keyProperty="Id" >
      select operation_seq.nextval as id from desc
   < /selectKey>
  insert into test(id,name,desc) values (#id#,#name#,#desc#)
 </insert>

oracleは主にシーケンスによってinsertのID番号を返すのでselectkeyは主にシーケンスから次の値を取得する操作を行います
mysqlの使い方
 <insert id="insertTopic" parameterClass="topic">
 insert into test(ID, NAME, DESC) values (#ID#, #NAME#, #DES#)
  < selectKey resultClass="string" keyProperty="id">
     select last_insert_id() as ID from test limit 1 
   < /selectKey> 
</insert>

msyqlは主にlast_を利用していますinsert_idこの関数は最大のid値を取得します