mybatis-plus (a="" and b="") or (a="" and b="")
时间: 2023-07-06 16:40:56 浏览: 135
mybatis-plus
5星 · 资源好评率100%
使用 Mybatis-Plus 进行复杂的查询条件拼接可以使用 `QueryWrapper` 对象。例如,假设有一个实体类 `User`,其中包含 `a` 和 `b` 两个字段,我们想要查询满足以下条件的用户:
- (a="" and b="") 或 (a="" and b="")
- (a="xxx" and b="yyy") 或 (a="zzz" and b="www")
可以使用如下代码:
```java
List<User> userList = userMapper.selectList(new QueryWrapper<User>()
.and(i -> i.eq("a", "").eq("b", "").or().eq("a", "").eq("b", ""))
.or(i -> i.and(j -> j.eq("a", "xxx").eq("b", "yyy"))
.or(j -> j.eq("a", "zzz").eq("b", "www")))
);
```
其中,`and` 方法用于添加 `AND` 连接的条件,可以传递一个 lambda 表达式。在 lambda 表达式中,可以使用 `eq` 方法来添加等于的条件,也可以使用其他的条件方法。`or` 方法用于添加 `OR` 连接的条件,也可以传递一个 lambda 表达式,用法与 `and` 方法相同。需要注意的是,在 `and` 和 `or` 方法中传递的 lambda 表达式中,每个条件之间的关系默认都是 `AND`,如果需要使用 `OR`,可以调用 `or` 方法。
阅读全文