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 对应的内容