mybatis批量插入並返回主鍵

2021-10-13 17:11:44 字數 1261 閱讀 3657

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...