Mybatis Plus 高级用法

本文介绍了如何在MybatisPlus 3.0.7中使用LambdaQueryWrapper和链式查询,演示了复杂SQL的等价Lambda表达式和简化写法,包括LIKE操作、OR逻辑和NULL条件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.lamda条件构造器的使用

 要查询的sql :

 SELECT * FROM `task_job` where  title     like   '%倪欢测试%'    and   check_outside_pn_code    >=    1;

LambdaQueryWrapper<TaskJob> lamda1 = new LambdaQueryWrapper<>();
LambdaQueryWrapper<TaskJob> lambda2 = new QueryWrapper<TaskJob>().lambda();
LambdaQueryWrapper<TaskJob> lambda3 = Wrappers.<TaskJob>lambdaQuery();

lamda1.like(TaskJob::getTitle, "倪欢测试").ge(TaskJob::getCheckOutsidePnCode, 1);
List<TaskJob> taskJobList = taskJobMapper.selectList(lamda1);
log.info("taskJobList:{}", taskJobList);

lambda2.like(TaskJob::getTitle, "倪欢测试").gt(TaskJob::getCheckOutsidePnCode, 1);
List<TaskJob> taskJobList1 = taskJobMapper.selectList(lambda2);
log.info("taskJobList1:{}", taskJobList1);

lambda3.like(TaskJob::getTitle, "倪欢测试").gt(TaskJob::getCheckOutsidePnCode, 1);
List<TaskJob> taskJobList2 = taskJobMapper.selectList(lambda3);
log.info("taskJobList2:{}", taskJobList2);

三者查询结果与sql 查询结果相同

 要查询的sql :

 SELECT *  FROM `task_job` WHERE title  LIKE '倪欢测试%'     AND (check_outside_pn_code > 1   OR check_inside_user = NULL);

     LambdaQueryWrapper<TaskJob> lambda = Wrappers.<TaskJob>lambdaQuery();
        lambda.likeRight(TaskJob::getTitle, "倪欢测试").and
                (x -> x.gt(TaskJob::getCheckOutsidePnCode, 1).or().isNull(TaskJob::getCheckInsideUser));
        List<TaskJob> taskJobList = taskJobMapper.selectList(lambda);
        log.info("taskJobList:{}", taskJobList);

 

 链式写法:mybatisPlus 3.0.7后的简化写法

 SELECT *  FROM `task_job` WHERE title  LIKE '倪欢测试%'     AND (check_outside_pn_code >= 1   OR check_inside_user = NULL);

        List<TaskJob> taskJobList = new LambdaQueryChainWrapper<TaskJob>(taskJobMapper).likeRight
                (TaskJob::getTitle, "倪欢测试").and(
                x -> x.gt(TaskJob::getCheckOutsidePnCode, 1).or().isNull(TaskJob::getCheckInsideUser)
        ).list();
        log.info("taskJobList:{}", taskJobList);

 

 

 

链式更新

https://www.cnblogs.com/chenglc/p/13278158.html

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值