wrapper包裝更新類:UpdateWrapper
UpdateWrapper有兩個函數:eq表示相等,in表示包含在里面
一般不用包裝,因為UpdateWrapper無法從返回結果判斷是否更新成功。當普通update方法無法滿足需求時,可使用包裝,如批量更新
-
public int updateByName(Map<String, Object> map) { String name = StringKit.of(map.get("name")); UpdateWrapper<a> upcst = new UpdateWrapper<>(); upcst.eq("name", name); if(map.containsKey("age")) { upcst.set("age", StringKit.of(map.get("age")));a } return mapper.update(null, upcst); } 此方法是對 Bean 對象 a 進行封裝 ,以 name 為主鍵,更新 age 的內容 public int updates(List<Map<String, Object>> qglist) { qglist.forEach(qg -> update(qg)); return qglist.size(); }
批量更新,用於多個 Bean 對象 a,以 name 為主鍵,更新 age 的內容,age的內容不同
public int updates(Map<String, Object> as) {
String names= StringKit.of(checkers.get("names"));
if (codes.isEmpty()) {
return 0;
}
String[] namearray = names.split(",");
List<String> namelist = new ArrayList<>();
for (String name: namearray ) {
namelist .add(name);
}
UpdateWrapper<a> ups = new UpdateWrapper<>();
ups.in("name", namelist);
if (as.containsKey("age")) {
Integer age= NumberKit.IntegerOf(checkers.get("age"));
ups.set("age", age);
}
int r = mapper.update(null, ups);
return r;
}
此方法用於批量更新,names為多個 a 的主鍵 name 以 逗號 ” ,“ 分割拼成的字符串,轉化為 namelist ,對 namelist 里
的每個元素 name 對應的 Bean 對象 a 當中的元素 age 統一更新為 map 里 age 對應的內容