ibatis的selectkey小學習

背景:
      在使用ibatis插入數據進數據庫的時候,會用到一些sequence的數據,有些情況下,在插入完成之後還需要將sequence的值返回,然後才能進行下一步的操作。
      使用ibatis的selectKey就可以得到sequence的值,同時也會將值返回。不過對於不同的數據庫有不同的操作方式。
      對於oracle:
      <insert id="insertUser" parameterClass="ibatis.User">
           <selectKey resultClass="long" keyProperty="id">
              select SEQ_USER_ID.nextval as id from dual
          </selectKey>
           insert into user
          (id,name,password)
          values
          (#id#,#name#,#password#)
      </insert>
       該句話執行完之後,傳進來的參數User對象DO裏的id字段就會被賦值成sequence的值。

     對於mysql
     <insert id="insertUser" parameterClass="ibatis.User">
          insert into user
          (name,password)
          values
          (#name#,#password#)
           <selectKey resultClass="long" keyProperty="id">  
             SELECT LAST_INSERT_ID() AS ID  
        </selectKey>  
      </insert>
       將selectKey放在insert之後,通過LAST_INSERT_ID()  獲得剛插入的自動增長的id的值。

 

 

 

發佈了2 篇原創文章 · 獲贊 0 · 訪問量 9058
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章