LambdaQueryWrapperOr详解

发布时间:2023-05-21

一、简介

LambdaQueryWrapperOr是MyBatis-Plus中基于Lambda表达式的查询构造器的一个类,它是LambdaQueryWrapper的扩展类,增加了or操作,并且可以链式调用。

二、使用方法

我们可以使用LambdaQueryWrapper和LambdaQueryWrapperOr快速构建MyBatis的查询条件,其中LambdaQueryWrapper可以链式构造多个查询条件,而LambdaQueryWrapperOr则可以使用or连接多个查询条件,实现复杂的查询逻辑。 下面是一个使用LambdaQueryWrapper和LambdaQueryWrapperOr实现复杂查询逻辑的实例:

LambdaQueryWrapper<User> wrapper = Wrappers.
lambdaQuery(User.class);
wrapper.like(User::getName, "test").or(w -> w.like(User::getEmail, "test").gt(User::getAge, 18));
List<User> userList = userMapper.selectList(wrapper);

上面的代码中,我们使用LambdaQueryWrapper构造了两个查询条件:第一个是查询名字中包含"test"的用户,第二个是查询邮箱中包含"test"且年龄大于18岁的用户,这两个查询条件使用or连接,意味着只要两个条件中有一个满足,就可以查询出该用户。

三、常用方法

1. or

用于将多个查询条件使用or连接起来,就像上面的例子一样。

Wrapper lambdaQueryWrapper = new LambdaQueryWrapper();
lambdaQueryWrapper.and(wrapper -> wrapper.eq(TUser::getAge, 18).or().eq(TUser::getName, "张三"));

2. eq

用于构造等于查询条件,语法为:eq(column, value)。

Wrapper lambdaQueryWrapper = new LambdaQueryWrapper();
lambdaQueryWrapper.eq(TUser::getUserId, 1);

3. ne

用于构造不等于查询条件,语法为:ne(column, value)。

Wrapper lambdaQueryWrapper = new LambdaQueryWrapper();
lambdaQueryWrapper.ne(TUser::getUserId, 1);

4. gt

用于构造大于查询条件,语法为:gt(column, value)。

Wrapper lambdaQueryWrapper = new LambdaQueryWrapper();
lambdaQueryWrapper.gt(TUser::getAge, 18);

5. ge

用于构造大于等于查询条件,语法为:ge(column, value)。

Wrapper lambdaQueryWrapper = new LambdaQueryWrapper();
lambdaQueryWrapper.ge(TUser::getAge, 18);

6. lt

用于构造小于查询条件,语法为:lt(column, value)。

Wrapper lambdaQueryWrapper = new LambdaQueryWrapper();
lambdaQueryWrapper.lt(TUser::getAge, 18);

7. le

用于构造小于等于查询条件,语法为:le(column, value)。

Wrapper lambdaQueryWrapper = new LambdaQueryWrapper();
lambdaQueryWrapper.le(TUser::getAge, 18);

8. like

用于构造模糊查询条件,语法为:like(column, value)。

Wrapper lambdaQueryWrapper = new LambdaQueryWrapper();
lambdaQueryWrapper.like(TUser::getName, "张三");

9. notLike

用于构造非模糊查询条件,语法为:notLike(column, value)。

Wrapper lambdaQueryWrapper = new LambdaQueryWrapper();
lambdaQueryWrapper.notLike(TUser::getName, "张三");

四、总结

LambdaQueryWrapperOr是MyBatis-Plus中基于Lambda表达式的查询构造器的一个扩展类,使用它可以快速构建MyBatis的查询条件,并且支持链式调用和or操作,实现复杂的查询逻辑。通过本文的介绍,相信大家对LambdaQueryWrapperOr有了更深入的了解和掌握。