mybatis-plus 查询条件中括号怎么表示
时间: 2023-08-13 19:27:38 浏览: 298
IntelliJ IDEA2018安装mybatis_plus插件
在 MyBatis-Plus 中,可以使用 `LambdaQueryWrapper` 来构建查询条件,其中可以使用 `nested` 方法来构建嵌套查询条件,从而实现括号的效果。
下面是一个例子,假设有一个实体类 `User`,有三个属性 `name`、`age` 和 `sex`,我们想查询名字为 "Tom" 或者年龄小于 18 岁且性别为女的用户,可以这样写:
```java
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(User::getName, "Tom")
.or(wrapper -> wrapper.lt(User::getAge, 18).eq(User::getSex, "female"));
List<User> userList = userMapper.selectList(queryWrapper);
```
在上面的代码中,我们使用了 `or` 方法连接了两个查询条件,第一个查询条件是名字等于 "Tom",第二个查询条件使用了嵌套的方式,使用 `wrapper -> ...` 来表示一个 Lambda 表达式,其中 `wrapper` 就是用来构建嵌套查询条件的对象,我们在这个 Lambda 表达式中调用了 `lt` 方法表示小于,再调用了 `eq` 方法表示等于,从而实现了年龄小于 18 岁且性别为女的查询条件。
使用 `nested` 方法的好处是可以使代码更加清晰易懂,同时也可以实现更加复杂的查询条件。需要注意的是,`nested` 方法中也可以再次使用 `or`、`and` 等方法来构建更加复杂的查询条件。
阅读全文