Ibatis (七) 自動生成主鍵

2021-09-30 14:50:17 字數 1802 閱讀 9088

很多資料庫支援自動生成主鍵的資料型別。不過這通常(並不總是)是個私有的特性。sql map通過的子元素來支援自動生成的鍵值。它同時支援預生成(如oracle)和後生成兩種型別(如ms-sql server)。

1. 建表,將id設定為主鍵,且需加上auto_increment設定為自動增加

create table ibatis_db.t_product(pro_id int(6)

primary key

auto_increment

not null,

pro_description

varchar(150) not null,

pro_price double not null);

2.product_sqlmap.xml中將

xml**

<

insert

id="insertproduct"

parameterclass="product"

>

insertintot_product(prd_id,prd_description,prd_price)

values(#id#,#description#,#price#)

]]>

insert

>

修改為:

xml**

<

insert

id="insertproduct-oracle"

parameterclass="com.domain.product"

>

<

selectkey

resultclass="int"

keyproperty="id"

>

selectstockidsequence.nextvalasidfromdual

selectkey

>

insertintot_product(prd_id,prd_description)

values(#id#,#description#)

insert

>

<

insert

id="insertproduct-ms-sql"

parameterclass="com.domain.product"

>

insertintot_product(prd_description)

values(#description#)

<

selectkey

resultclass="int"

keyproperty="id"

>

select@@identityasid

selectkey

>

insert

>

<

insert

id="insertuser-my-sql"

parameterclass="product"

>

insertintot_product(pro_description,pro_price)values(#description#,#price#)

<

selectkey

resultclass="int"

keyproperty="id"

>

selectlast_insert_id()asid

selectkey

>

insert

>

<

span

style="color:#000000;"

>

span

>

IBatis 自動生成主鍵

insert id insertproduct oracle parameterclass product selectkey resultclass int type pre keyproperty id select stockidsequence.nextval as value from d...

ibatis主鍵自動生成

我們在資料庫插入一條資料的時候,經常是需要返回插入這條資料的主鍵。但是資料庫 商之間生成主鍵的方式都不一樣。有些是預先生成 pre generate 主鍵的,如oracle和postgresql 有些是事後生成 post generate 主鍵的,如mysql和sql server。但是不管是哪種方...

ibatis得到mysql的生成主鍵問題和亂碼問題

ibatis得到mysql的生成主鍵 插入一條記錄後,需要得到這個記錄的auto increment id 由於我使用的ibatis,於是在ibatis的sqlmap上這麼書寫 insert into content content key content gmt create gmt modify...