1.使用 LambdaQueryWrapper:
LambdaQueryWrapper<User> queryWrapper = Wrappers.lambdaQuery();
queryWrapper.eq(User::getName, "张三")
.gt(User::getAge, 18);
List<User> userList = userMapper.selectList(queryWrapper);
在上述示例中,使用 Wrappers.lambdaQuery() 创建一个 LambdaQueryWrapper 对象,并通过 eq 和 gt 方法设置查询条件,最后调用 selectList 方法执行查询并返回结果。
2.使用 QueryWrapper
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name", "张三")
.gt("age", 18);
List<User> userList = userMapper.selectList(queryWrapper);
在上述示例中,使用 QueryWrapper 对象创建一个 QueryWrapper 对象,并通过 eq 和 gt 方法设置查询条件,最后调用 selectList 方法执行查询并返回结果。与 LambdaQueryWrapper 不同的是,这里需要传入字段名作为参数。
当使用 MyBatis-Plus 进行条件查询时,可以使用以下常见的条件查询用法,以便更灵活地构建查询条件:
等于(eq):
queryWrapper.eq("name", "张三");
不等于(ne):
queryWrapper.ne("age", 18);
大于(gt):
queryWrapper.gt("age", 18);
大于等于(ge):
queryWrapper.ge("age", 18);
小于(lt):
queryWrapper.lt("age", 30);
小于等于(le):
queryWrapper.le("age", 30);
模糊查询(like):
queryWrapper.like("name", "张");
左模糊查询(likeLeft):
queryWrapper.likeLeft("name", "张");
右模糊查询(likeRight):
queryWrapper.likeRight("name", "三");
在指定范围内查询(in):
queryWrapper.in("age", Arrays.asList(20, 30, 40));
不在指定范围内查询(notIn):
queryWrapper.notIn("age", Arrays.asList(20, 30, 40));
列为空查询(isNull):
queryWrapper.isNull("email");
列不为空查询(isNotNull):
queryWrapper.isNotNull("email");
复杂条件组合查询:MyBatis-Plus 还支持使用 and、or 和 not 等方法进行条件的逻辑组合查询。
queryWrapper.eq("name", "张三")
.and(wrapper -> wrapper.lt("age", 30).or().isNotNull("email"))
.notLike("address", "北京");
在上述示例中,使用 and 方法将两个条件进行逻辑与操作,使用 or 方法设置或者关系,使用 notLike 方法设置不满足条件的情况。