mybatisPlus修改,查询,删除

1,修改

    @Test
    public void test05(){

        UpdateWrapper<UserInfo> updateWrapper = new UpdateWrapper<>();
        updateWrapper.like("name","li")
                .and(i->i.gt("create_time","2023-04-18 15:00:37").or().isNull("sex"));

        UserInfo userInfo = new UserInfo().setName("李武").setUpdateTime(new Date());//需要修改的字段信息
        userInfoMapper.update(userInfo,updateWrapper);

//       ==>  Preparing: UPDATE t_user SET name=?,update_time=? WHERE is_delete=0 AND (name LIKE ? AND (create_time > ? OR sex IS NULL))
//       ==> Parameters: 李武(String), 2023-04-19 15:27:02.404(Timestamp), %li%(String), 2023-04-18 15:00:37(String)

        updateWrapper.set("name","李武").set("update_time",new Date());//需要修改的字段信息
        userInfoService.update(updateWrapper);
        //等同于
        userInfoMapper.update(null,updateWrapper);

//       ==>  Preparing: UPDATE t_user SET name=?,update_time=? WHERE is_delete=0 AND (name LIKE ? AND (create_time > ? OR sex IS NULL))
//       ==> Parameters: 李武(String), 2023-04-19 15:27:02.404(Timestamp), %li%(String), 2023-04-18 15:00:37(String)

        LambdaUpdateWrapper<UserInfo> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
        lambdaUpdateWrapper.like(UserInfo::getName,"li")
                .and(i->i.gt(UserInfo::getCreateTime,"2023-04-18 15:00:37").or().isNull(UserInfo::getSex));
        lambdaUpdateWrapper.set(UserInfo::getName,"李武");
        userInfoService.update(lambdaUpdateWrapper);
        //等同于
        userInfoMapper.update(null,lambdaUpdateWrapper);
//        ==>  Preparing: UPDATE t_user SET name=? WHERE is_delete=0 AND (name LIKE ? AND (create_time > ? OR sex IS NULL))
//        ==> Parameters: 李武(String), %li%(String), 2023-04-18 15:00:37(String)
    }

2,查询

    @Test
    public void test06(){

        String username = "李";
        String createTime = "2023-04-18 15:00:37";

        QueryWrapper<UserInfo> queryWrapper = new QueryWrapper<>();
        queryWrapper.select("id","name","sex");//返回列
        queryWrapper.inSql("id","select id from t_user where id < 10"); //子查询
        if (StringUtils.isNotBlank(username)){
            queryWrapper.like("name",username);
        }
        if (createTime!=null){
            queryWrapper.ge("create_time",createTime);
        }
        queryWrapper.orderByAsc("id").orderByDesc("sex");//排序

        userInfoService.list(queryWrapper);
        //等同于
        userInfoMapper.selectList(queryWrapper);
//          ==>  Preparing: SELECT id,name,sex FROM t_user WHERE is_delete=0 AND (id IN (select id from t_user where id < 10) AND name LIKE ? AND create_time >= ?) ORDER BY id ASC,sex DESC
//          ==> Parameters: %李%(String), 2023-04-18 15:00:37(String)

        LambdaQueryWrapper<UserInfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
        lambdaQueryWrapper.like(StringUtils.isNotBlank(username),UserInfo::getName,username)
                .ge(createTime!=null,UserInfo::getCreateTime,createTime);
        userInfoService.list(lambdaQueryWrapper);
        //等同于
        userInfoMapper.selectList(lambdaQueryWrapper);
//            ==>  Preparing: SELECT id,name,sex,create_time,update_time,is_delete FROM t_user WHERE is_delete=0 AND (name LIKE ? AND create_time >= ?)
//            ==> Parameters: %李%(String), 2023-04-18 15:00:37(String)
    }

3,删除

    @Test
    public void test07(){
        LambdaQueryWrapper<UserInfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
        lambdaQueryWrapper.between(UserInfo::getCreateTime,"2017-08-02 12:46:54","2018-08-02 12:46:54")
                .isNotNull(UserInfo::getSex);
        userInfoService.remove(lambdaQueryWrapper);
        //等同于
        userInfoMapper.delete(lambdaQueryWrapper);
//        ==>  Preparing: UPDATE t_user SET is_delete=1 WHERE is_delete=0 AND (create_time BETWEEN ? AND ? AND sex IS NOT NULL)
//        ==> Parameters: 2017-08-02 12:46:54(String), 2018-08-02 12:46:54(String)
    }

这里是做了逻辑删除,具体可查看 https://blog.csdn.net/qq_36636312/article/details/130226147

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值