mybatisplus关联查询分页
时间: 2024-05-16 16:11:11 浏览: 102
mybatis-plus分页查询
MyBatis-Plus(简称MP)是基于MyBatis进行封装的增强工具,为简化开发、提高效率而生。它提供了许多常用的功能和特性,其中就包括关联查询和分页功能。
在MyBatis-Plus中进行关联查询需要使用Wrapper类,例如使用LambdaQueryWrapper可以轻松实现对多表进行关联查询。关联查询的语法格式如下:
```
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(User::getId, 1)
.leftJoin(UserRole.class, UserRole::getUserId, User::getId)
.eq(UserRole::getRoleId, 1);
List<User> userList = userService.list(wrapper);
```
其中,leftJoin()方法表示左连接另一张表,eq()方法用于添加条件,list()方法用于执行查询。
关于分页,MyBatis-Plus提供了Page类,我们可以使用它来实现分页功能。首先需要创建一个Page对象,并指定当前页和每页显示的记录数,然后将其作为参数传入对应的查询方法中。示例代码如下:
```
int currentPage = 1;
int pageSize = 10;
Page<User> page = new Page<>(currentPage, pageSize);
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(User::getName, "Tom");
userService.page(page, wrapper);
List<User> userList = page.getRecords();
```
其中,Page构造函数的第一个参数表示当前页数,第二个参数表示每页显示的记录数。在查询方法中,我们将Page对象和查询条件作为参数传入,然后通过page.getRecords()方法获取查询结果列表。
阅读全文