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的值。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章