MyBatis 批量操作

2021-09-02 16:20:31 字數 859 閱讀 1771

使用mybatis做資料處理框架時,操作大量資料的插入、更新等耗時的工作時,可以使用批量處理來提高效率,mybatis的批量處理主要使用foreach標籤來實現。

foreach 元素的功能是非常強大的,它允許你指定乙個集合,宣告可以用在元素體內的集合項和索引變數。它也允許你指定開閉匹配的字串以及在迭代中間放置分隔符。這個元素是很智慧型的,因此它不會偶然地附加多餘的分隔符。

注意: 你可以將任何可迭代物件(如列表、集合等)和任何的字典或者陣列物件傳遞給foreach作為集合引數。當使用可迭代物件或者陣列時,index是當前迭代的次數,item的值是本次迭代獲取的元素。當使用字典(或者map.entry物件的集合)時,index是鍵,item是值。

foreach入參介紹:

1.如果傳入的是單引數且引數型別是乙個list的時候,collection屬性值為list。

2.如果傳入的是單引數且引數型別是乙個array陣列的時候,collection的屬性值為array。

3.如果傳入的引數是多個的時候,我們就需要把它們封裝成乙個map了,當然單引數也可以封裝成map。

下面以部落格的post類為例,post有3個屬性:id、msg、type。

1.批量查詢

select * from post 

where id in

#

2.批量插入

insert into post 

(msg,type)

values

#,#

3.批量更新

update post

msg=#,

type=#,

where id=#

mybatis 批量操作

foreach屬性 屬性描述 item 迴圈體中的具體物件。支援屬性的點路徑訪問,如item.age,item.info.details。具體說明 在list和陣列中是其中的物件,在map中是value。該引數為必選。collection 要做foreach的物件,作為入參時,list 物件預設用l...

mybatis批量操作

查詢id在in裡面的測試 list測試 listselectidin param idlist listidlist 查詢id在in裡面的測試 map測試,就是id在乙個map中 listselectinmap param idmap hashmapidmap 修改所有id在list中的測試 int...

mybatis批量操作

應用場景 今天做了乙個插入資料的小功能,將含有50個物件的集合 list 插入到資料庫。自然而然的就要到了mybatis批量插入,記得剛參加工作時,類似場景我會寫乙個for迴圈,逐條插入資料。運算元據庫的時候會經過這樣乙個流程 建立 開啟 執行sql 關閉連線,建立和開啟資料庫連線對效能是有損失的,...