QueryWrapper表达or
时间: 2025-01-07 22:02:36 浏览: 4
### 如何在 QueryWrapper 中使用 OR 条件
MyBatis Plus 提供了 `QueryWrapper` 类来构建查询条件,其中支持多种逻辑操作符用于组合不同的查询条件。为了实现 OR 逻辑,在 `QueryWrapper` 中可以调用特定的方法完成这一需求。
对于简单的 OR 查询,可以直接利用 `or()` 方法[^1]:
```java
// 创建 QueryWrapper 实例
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("age", 20).or().eq("name", "Tom");
```
上述代码表示查找年龄等于20岁 或者 名字叫 Tom 的记录[^1]。
如果需要更复杂的多字段 OR 组合,则可以通过嵌套的方式使用 `and(ICondition)` 和 `or(ICondition)` 接口方法[^1]:
```java
// 复杂的 or 查询例子
QueryWrapper<User> complexOrQuery = new QueryWrapper<>();
complexOrQuery.and(i -> i.eq("status", 1).or().like("address", "%北京%"));
```
这段代码实现了状态为1 或 地址包含“北京”的复合查询条件[^1]。
另外一种方式是通过 lambda 表达式简化书写并增强类型安全性[^1]:
```java
LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(User::getAge, 20).or().eq(User::getName, "Tom");
```
这种方式不仅保持了清晰易读的特点,还减少了硬编码字符串带来的错误风险[^1]。
阅读全文