我們在資料庫插入一條資料的時候,經常是需要返回插入這條資料的主鍵。但是資料庫**商之間生成主鍵的方式都不一樣。
有些是預先生成(pre-generate)主鍵的,如oracle和postgresql;有些是事後生成(post-generate)主鍵的,如mysql和sql server。但是不管是哪種方式,我們都可以用ibatis的節點來獲取語句所自動生成的主鍵。
例子如下:
xml **
<
insert
id = "insertproduct-oracle"
parameterclass = "product"
>
<
selectkey
resultclass = "int"
type = "pre"
keyproperty = "id"
>
select stockidsequence.nextval as value from dual
selectkey
>
insert into product (prd_id,prd_description) values (#id#,#description#)
insert
>
<
insert
id = "insertproduct-ms-sql"
parameterclass = "product"
>
insert into product (prd_description)
values (#description#)
<
selectkey
resultclass = "int"
type = "post"
keyproperty = "id"
>
select @@identity as value
selectkey
>
insert
>
<
insert
id = "insertproduct-mysql"
parameterclass = "product"
>
insert into product (prd_description)
values (#description#)
<
selectkey
resultclass = "int"
type = "post"
keyproperty = "id"
>
select last_insert_id() as value
selectkey
>
insert
>
通過這種方法,我們可以輕鬆實現自動生成ibatis主鍵,給我們的工作帶來了很大的便利
IBatis 自動生成主鍵
insert id insertproduct oracle parameterclass product selectkey resultclass int type pre keyproperty id select stockidsequence.nextval as value from d...
Ibatis (七) 自動生成主鍵
很多資料庫支援自動生成主鍵的資料型別。不過這通常 並不總是 是個私有的特性。sql map通過的子元素來支援自動生成的鍵值。它同時支援預生成 如oracle 和後生成兩種型別 如ms sql server 1.建表,將id設定為主鍵,且需加上auto increment設定為自動增加 create ...
ibatis得到mysql的生成主鍵問題和亂碼問題
ibatis得到mysql的生成主鍵 插入一條記錄後,需要得到這個記錄的auto increment id 由於我使用的ibatis,於是在ibatis的sqlmap上這麼書寫 insert into content content key content gmt create gmt modify...