Spring Boot 使用 PageHelper 实现分页查询
Spring Boot 使用 PageHelper 实现分页查询
PageHelper 是一个 MyBatis 的分页插件,可以轻松实现分页功能。本文将介绍如何在 Spring Boot 中使用 PageHelper 实现分页查询。
1. 引入依赖
在 pom.xml 文件中添加 PageHelper 依赖:
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.4.1</version>
</dependency>
2. 配置 PageHelper
在 application.properties 或 application.yml 文件中配置 PageHelper:
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArgs=true
pagehelper.params=pageNum=page,pageSize=rows
3. 代码示例
以下是一个使用 PageHelper 实现分页查询的示例代码:
@RequestMapping(value = "/queryCondition")
@ResponseBody
public PageInfo<User> queryCondition(@RequestParam(value="pageNum",defaultValue="1")int pageNum,
@RequestParam(value="pageSize",defaultValue="5")int pageSize,
String email,String nickName,String createDate,Integer userState){
PageHelper.startPage(pageNum, pageSize);
List<User> userList = userService.queryUserByCondition(email,nickName,createDate,userState);
PageInfo<User> pageInfo = new PageInfo<>(userList);
return pageInfo;
}
代码解释:
PageHelper.startPage(pageNum, pageSize):开启 PageHelper 分页功能,设置当前页码和每页大小。userService.queryUserByCondition(email,nickName,createDate,userState):查询用户列表,根据条件过滤。PageInfo<User> pageInfo = new PageInfo<>(userList):将查询结果封装到PageInfo对象中,该对象包含了分页信息和数据列表。return pageInfo:返回PageInfo对象,前端可以根据该对象进行展示和操作。
4. PageInfo 构造函数
PageInfo 类提供了多个构造函数,用于不同的使用场景。以下列出部分常用构造函数:
public PageInfo(List<T> list) {
this(list, DEFAULT_NAVIGATE_PAGES);
}
public PageInfo(List<T> list, int navigatePages) {
this(list, navigatePages, DEFAULT_PAGE_SIZE);
}
public PageInfo(List<T> list, int navigatePages, int pageSize) {
this(list, navigatePages, pageSize, true);
}
public PageInfo(List<T> list, int navigatePages, int pageSize, boolean count) {
if (list instanceof Page) {
Page<T> page = (Page<T>)list;
this.pageNum = page.getPageNum();
this.pageSize = page.getPageSize();
this.pages = page.getPages();
this.size = page.size();
this.total = page.getTotal();
this.list = page;
if (count) {
this.startRow = page.getStartRow();
this.endRow = page.getEndRow();
}
} else {
this.pageNum = 1;
this.pageSize = pageSize;
this.pages = 0;
this.size = 0;
this.total = 0L;
this.list = list;
}
this.navigatePages = navigatePages;
calcNavigatepageNums();
calcPage();
}
5. 总结
PageHelper 是一个非常方便的分页插件,可以轻松实现分页功能。本文介绍了如何在 Spring Boot 中使用 PageHelper 实现分页查询,并提供了代码示例和详细解释。希望本文能够帮助你快速上手 PageHelper,实现你的分页需求。
原文地址: https://www.cveoy.top/t/topic/mO3o 著作权归作者所有。请勿转载和采集!