mybatis批量插入
在mysql資料庫中支援批量插入,所以只要配置usegeneratedkeys和keyproperty就可以批量插入並返回主鍵了。
比如有個表camera,裡面有camerano,chanindex,cameraname這三個字段,其中camerano是自增主鍵。
下面是批量插入的dao層介面:
void
batchinsertcameras
(@param
("list"
) list cameras)
;
xml形式:
"batchinsertcameras" usegeneratedkeys=
"true" keyproperty=
"camerano"
>
insert into camera (chanindex,cameraname)
values
"list" item=
"c" separator=
",">
(#,#
)<
/foreach>
<
/insert>
註解形式:
@insert(""
)@options
(usegeneratedkeys =
true
, keyproperty =
"camerano"
)void
batchinsertcameras
(@param
("list"
) list cameras)
;
@param裡必須寫成list, foreach的collection也必須寫成list,否則批量插入後會報錯說找不到"camerano"字段,而無法返回主鍵。
通過上面的xml形式或者註解形式的配置(我這是spring boot的專案,引入的mybatis-spring-boot-starter,採用的是註解形式),就可以批量插入並返回主鍵了,主鍵會被設定到camera物件的camerano欄位中。
batchinsertcameras
(cameras)
;for
(camera camera : cameras)
執行批量插入時,需確保至少有一條待插入的記錄,否則會導致sql有誤而報錯。
MyBatis批量插入並返回主鍵
mybatis批量插入 在mysql資料庫中支援批量插入,所以只要配置usegeneratedkeys和keyproperty就可以批量插入並返回主鍵了。比如有個表camera,裡面有camerano,chanindex,cameraname這三個字段,其中camerano是自增主鍵。下面是批量插入...
Mybatis 批量插入 返回自增Id
2月18日,mybatis3.3.1解決了此問題。好開心,省了多餘的查詢了。自己測試了一下。例子表 create table user id intnot null auto increment,name varchar 16 null comment 名稱 primary key id pom 依...
MyBatis 批量插入
1.遇到問題 insert at least 1 column 報錯說 至少插入一列 錯誤的語句 select studentcode,roomcode,n x,n y from把括號去掉 select studentcode,roomcode,n x,n y from 2.column count...