MybatisPlus------UpdateWrapper、condition、LambdaQueryWrapper(八)
UpdateWrapper用于更新sql,condition用于动态组装条件,判断条件是否成立,才拼装这个sql。
·
MybatisPlus------UpdateWrapper使用以及condition组装条件(八)
UpdateWrapper用于更新sql,condition用于动态组装条件,判断条件是否成立,才拼装这个sql
UpdateWrapper更新
此时update方法,只需要传入一个参数(null, updateWrapper),UpdateWrapper的set方法代表sql中的set字段,其他的方法就作为where后的条件判断。
@Test
public void testUpdate(){
// 将用户名中包含有a 并且 (年龄大于20或邮箱为null)的信息修改
UpdateWrapper<BaseProcedure> updateWrapper = new UpdateWrapper<>();
updateWrapper.like("procedure_name","a")
.and( i -> i.gt("age",20).or().isNull("email"));
updateWrapper.set("procedure_name","小黑").set("email","abcqq.com");
int update = baseProcedureMapper.update(null, updateWrapper);
System.out.println("update"+update);
}
condition组装条件
基本所有条件都可以使用condition,进行判断,当条件成立时才拼装这个sql。
@Test
public void testUpdate2(){
BaseProcedure baseProcedure = new BaseProcedure();
QueryWrapper<BaseProcedure> baseProcedureQueryWrapper = new QueryWrapper<>();
// 基本所有条件都可以使用condition,进行判断,当条件成立时才会执行
baseProcedureQueryWrapper.
eq(StringUtils.isNotEmpty(baseProcedure.getProcedureName()),"procedure_name",baseProcedure.getProcedureName())
.like(StringUtils.isNotEmpty(baseProcedure.getProcedureCode()),"procedure_code",baseProcedure.getProcedureCode());
List<BaseProcedure> list = baseProcedureMapper.selectList(baseProcedureQueryWrapper);
System.out.println("list"+list);
}
}
LambdaQueryWrapper和LambdaUpdateWrapper
与普通的QueryWrapper只有一处不同点,在于字段属性的获取
平时使用
eq(StringUtils.isNotEmpty(baseProcedure.getProcedureName()),"procedure_name",baseProcedure.getProcedureName())
使用LambdaQueryWrapper则
eq(StringUtils.isNotEmpty(baseProcedure.getProcedureName()),BaseProcedure::getProcedureName,baseProcedure.getProcedureName())
其他的条件与eq使用方法一样。只有这一点不同,防止字段名写错,使用函数式接口获取实体类中某个属性对应的字段名。
LambdaQueryWrapper与LambdaUpdateWrapper一致
更多推荐
已为社区贡献3条内容
所有评论(0)