MyBatis Plus多表条件查询
时间: 2023-06-23 10:09:41 浏览: 87
Mybatis plus 配置多数据源的实现示例
MyBatis Plus支持多表条件查询,可以使用Wrapper或者QueryWrapper来实现。
1. 使用Wrapper
Wrapper是一个抽象类,常用的子类有QueryWrapper、UpdateWrapper、LambdaQueryWrapper、LambdaUpdateWrapper等,可以根据需要选择使用。下面以QueryWrapper为例,演示多表条件查询。
```
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("dept_id", deptId)
.inSql("id", "select user_id from user_role where role_id = 1");
List<User> userList = userMapper.selectList(queryWrapper);
```
这个例子中,我们创建了一个QueryWrapper对象,并设置了两个条件:部门ID等于指定的deptId,ID在user_role表中角色ID为1的记录中出现过。最后通过userMapper的selectList方法查询结果。
2. 使用QueryWrapper
QueryWrapper是Wrapper的子类,更加方便实用,可以使用lambda表达式构建条件。
```
LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(User::getDeptId, deptId)
.inSql(User::getId, "select user_id from user_role where role_id = 1");
List<User> userList = userMapper.selectList(lambdaQueryWrapper);
```
这个例子中,我们创建了一个LambdaQueryWrapper对象,并设置了两个条件:部门ID等于指定的deptId,ID在user_role表中角色ID为1的记录中出现过。最后通过userMapper的selectList方法查询结果。
以上是MyBatis Plus多表条件查询的两种方法,具体使用哪种方法取决于你的项目需求和个人习惯。
阅读全文