MyBatis如何实现分页查询
时间: 2024-01-15 21:02:39 浏览: 80
MyBatis分页功能实现
5星 · 资源好评率100%
Mybatis-Plus 是基于 Mybatis 的增强工具,可以简化 Mybatis 的开发,其中包括分页查询的实现。
实现分页查询的步骤如下:
1. 在实体类中定义分页参数,如当前页码和每页记录数。
2. 在 Mapper 接口中定义分页方法,使用 Mybatis-Plus 提供的 Page 类作为参数。
3. 在 SQL 语句中使用 limit 子句来限制返回的记录数,同时计算偏移量。
4. 在 Service 层调用 Mapper 接口中的分页方法,将查询结果封装到 Page 对象中,返回给 Controller 层。
例如,假设有一个 User 实体类,其中定义了 currentPage 和 pageSize 两个分页参数。则在 UserMapper 接口中,可以定义一个分页查询方法如下:
```java
List<User> selectPage(Page<User> page, @Param("name") String name);
```
在 SQL 语句中,可以使用 limit 子句来限制返回的记录数,同时计算偏移量,例如:
```sql
SELECT * FROM user WHERE name LIKE #{name} LIMIT #{page.offset}, #{page.size}
```
在 Service 层中,调用 Mapper 接口的分页方法,如下:
```java
Page<User> page = new Page<>(currentPage, pageSize);
List<User> userList = userMapper.selectPage(page, name);
return page.setRecords(userList);
```
其中,Page 对象中的 currentPage 和 pageSize 参数表示当前页码和每页记录数,setRecords() 方法将查询结果封装到 Page 对象中。最终返回给 Controller 层。
阅读全文