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