MybatisPlus LambdaQueryWrapper 多表关联分页查询
时间: 2023-10-14 09:28:16 浏览: 113
Java的MyBatis框架中实现多表连接查询和查询结果分页
MybatisPlus LambdaQueryWrapper 可以简化多表关联查询,同时还支持分页查询。以下是一个示例代码:
```java
// 定义分页对象
IPage<UserVO> page = new Page<>(current, size);
// 构造 LambdaQueryWrapper 对象
LambdaQueryWrapper<User> wrapper = Wrappers.lambdaQuery();
wrapper.eq(User::getDeleted, 0);
// 多表关联查询
wrapper.inSql(User::getId, "SELECT user_id FROM user_role WHERE role_id = 1");
// 设置分页参数,并执行查询
return userMapper.selectPage(page, wrapper).convert(UserVO::new);
```
上面的代码中,我们首先定义了一个分页对象 `page`,然后构造了一个 LambdaQueryWrapper 对象 `wrapper`,并设置了一个删除标识的查询条件。接着使用 `inSql` 方法进行多表关联查询,查询条件是 `user_role` 表中 `role_id` 等于 1 的所有记录,返回的是这些记录中的 `user_id` 值。最后将分页对象和查询条件传递给 `selectPage` 方法进行分页查询。
注意,在 `convert` 方法中调用了 `UserVO::new`,这是因为我们需要将查询结果转换为 VO 类型,具体的转换逻辑可以根据实际情况进行编写。
阅读全文