MybatisPlus------UpdateWrapper、condition、LambdaQueryWrapper(八)

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一致

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值