很多資料庫支援自動生成主鍵的資料型別。不過這通常(並不總是)是個私有的特性。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...