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
>
介面**:
publicvoid 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...