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);
链式更新