MyBatis foreach 批量插入

2022-08-23 21:12:11 字數 2233 閱讀 2304

1.批量插入 :  insert into student(id,name,classid) values  (null,?,?),(null,?,?),(null,?,?)...

<

insert

id="insertmore"

>

insert into student(id,name,classid) values

<

foreach

collection

="liststu"

index

="index"

item

="item"

open

=""separator

=","

close

="">

(null,#,1)

foreach

>

insert

>

介面**:

public

void insertmore(map< string, object> map);

測試**:

sqlsessionfactory sqlsessionfactory =loadres.getssqlsessionfactory();

sqlsession session =sqlsessionfactory.opensession();

list

liststu = new

arraylist

();student s = new

student();

s.setname("同學一");

student s2 = new

student();

s2.setname("同學二");

student s3 = new

student();

s3.setname("同學三");

liststu.add(s);

liststu.add(s2);

liststu.add(s3);

// 最後用 map 封裝 傳入 以作【深層引用】map

< string, object> map = new

hashmap

();map.put("liststu", liststu);

class

).insertmore(map);

session.commit();

2.動態多條件查詢

<

select

id="sel_key_cols"

resulttype

="int"

>

select count(*) from student where

<

foreach

item

="item"

index

="key"

collection

="map_column"

open

=""separator

="and"

close

="">

$ = #

foreach

>

select

>

介面**:

public integer sel_key_cols(map< string, object> map);

測試**:

sqlsessionfactory sqlsessionfactory =loadres.getssqlsessionfactory();

sqlsession session =sqlsessionfactory.opensession();

map< string, object> map_column = new

hashmap

();map_column.put("name", "雞腿");

map_column.put("classid", "3");

//最後 map 再封裝一層 以作【深層呼叫】

map< string, object> map = new

hashmap

();map.put("map_column", map_column);

).sel_key_cols(map);

system.out.println(i);

Mybatis foreach 效能問題

這裡先不考慮使用 in 好不好,如何去優化 in,如何使用 exists 或 inner join 進行代替等,這裡就只是考慮使用了 in 語句,且使用了 mybatis 的 foreach 語句進行優化,其實 foreach 的優化很簡單,就是把 in 後面的語句在 裡面拼接好,在配置檔案中直接通...

mybatis foreach 用法總結

1.findbyids listids 傳入引數為單一list引數時的寫法 2.findbyids integer ids 傳入引數為單一陣列時的寫法 3.search integer ids,string title 傳入引數為多個型別的查詢條件時 mapparams new hashmap pa...

mybatis foreach標籤的使用

下面是foreach標籤的各個屬性 屬性描述 collection 表示迭代集合的名稱,可以使用 param註解指定,如下圖所示 該引數為必選 item 表示本次迭代獲取的元素,若collection為list set或者陣列,則表示其中的元素 若collection為map,則代表key valu...