1. Mybatis UpdateWrapper条件构造器的使用背景: 以前项目没有怎么用过此类构造器,现在项目遇到了正好记录一下.问题: 如何使用Mybatis UpdateWrapper构造器进行数据修改?解决办法: 为了更方便直观的理解,下面引入一段项目中的代码以供参考:Eg:
// 通过|驳回// 子方案状态字段.0逻辑删除,1编辑中,2已提交配置(清单生成中),3通过,4驳回.@PutMapping("/setSchemeStatus")public JsonResult setSchemeStatus(String id, Boolean status) {if(pcmChildSchemeService.update(new UpdateWrapper<PcmChildScheme>().eq("ID", id).set("STATUS", status==true?"2":"0"))) {return JsonResult.ok().put("status", "操作成功!"); }return JsonResult.error().put("satus", "操作失败!");}// PLM提供接口:通过|驳回@PutMapping("/updateStatus")@ApiOperation(value = "通过|驳回.true通过,false驳回.")// 子方案状态字段.0逻辑删除,1编辑中,2已提交配置(清单生成中),3通过,4驳回.public JsonResult updateStatus(String id, Boolean status) {if(pcmChildSchemeService.update(new UpdateWrapper<PcmChildScheme>().eq("ID", id).set("STATUS", status==true?"3":"4"))) {return JsonResult.ok().put("status", "操作成功!"); }return JsonResult.error().put("satus", "操作失败!");}
2. Mybatis QueryWrapper条件构造器的使用背景: 以前项目没有怎么用过此类构造器,现在项目遇到了正好记录一下.问题: 如何使用Mybatis QueryWrapper构造器进行数据查询?解决办法: 为了更方便直观的理解,下面引入一段项目中的代码以供参考:Eg:1. 条件查询where,and,or,in等等.2. 排序.
pcmSchemeService.list(new QueryWrapper<PcmScheme>().orderByDesc("CREATED_AT"));
chanDistInfoService.getOne(new QueryWrapper<ChanDistInfo>().eq("user_id", userId).ne("changesflag","1").isNull("is_delete"));
pcmCustomerConfigService.list(new QueryWrapper<PcmCustomerConfig>().eq("PRODUCT_LINE",productLine).eq("CC_STATUS", "1").or().eq("CC_STATUS", "2"));
下面是对应调度的接口暴露:
| 条件 | 作用 | 格式 |
| eq | 等于 = | new QueryWrapper.eq("字段",val) |
ne |
不等于 | QueryWrapper<表名> 对象 = new QueryWrapper(); 对象.ne("字段",val) |
| gt | 大于 | |
| ge | 大于等于 | |
| lt | 小于 | |
| le | 小于等于 | |
| betwen | 在...之间 | |
| noBetween | 不在....之间 | |
| like | 模糊匹配 | |
| noLike | ||
| likeLeft | ||
| likeRight | ||
| isNull | ||
| isNotNull | ||
| in | ||
| notLn |