Mybatis Plus and 嵌套用法(超详细)
前言
大家好,我是小哈。
本小节中讲解如何通过 Mybatis Plus 中的 Wrapper 组装 SQL 从而实现 and
语句。
方法
Wrapper 条件构造器中 and
相关的方法如下:
and(Consumer<Param> consumer)
and(boolean condition, Consumer<Param> consumer)
参数说明:
condition
: 是否组装条件;
代码示例
and
方法是父类 AbstractWrapper
(抽象类)中定义的方法,子类 QueryWrapper
、LambdaQueryWrapper
、UpdateWrapper
、LambdaUpdateWrapper
均可调用,以下使用 QueryWrapper
以及 Lambda 形式来演示:
// 组装查询条件
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("id", 1);
// and 语句
wrapper.and(i -> i.eq("age", 20).ne("gender", 1));
// 实际执行 SQL : SELECT id,name,age,gender FROM user WHERE (id = 1 AND (age = 20 AND gender <> 1))
List<User> users = userMapper.selectList(wrapper);
Lambda 形式:
// 实际执行 SQL : SELECT id,name,age,gender FROM user WHERE (id = 1 AND (age = 20 AND gender <> 1))
List<User> users1 = userMapper.selectList(new QueryWrapper<User>()
.lambda().eq(User::getId, 1).and(i -> i.eq(User::getAge, 20).ne(User::getGender, 1)));