本文主要介绍PageHelp分页插件的使用
如有需要,可以参考
如有帮助,不忘 点赞 ❥
文章目录
一、背景
PageHelper是在github上免费的一个分页插件,其提供了对数据查询很好的封装和查询效率。
相关文章
二、三步搞定法
1)创建Maven项目,在pom.xml配置文件中引入依赖
<!--添加分页依赖-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.10</version>
</dependency>
2)在mybatis-config.xml配置中设置插件配置
<!--设置分页插件-->
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<!-- 设置为true时,会将RowBounds第一个参数offset当成pageNum页码使用 -->
<property name="offsetAsPageNum" value="true"/>
<!-- 设置为true时,使用RowBounds分页会进行count查询 -->
<property name="rowBoundsWithCount" value="true"/>
<!-- 设置为true时,如果pageSize=0或者RowBounds.limit = 0就会查询出全部的结果 -->
<property name="pageSizeZero" value="true"/>
<!-- 启用合理化,如果pageNum<1会查询第一页,如果pageNum>pages会查询最后一页 -->
<property name="reasonable" value="true"/>
</plugin>
</plugins>
3)示例演示
@ResponseBody
@RequestMapping("/toList")
public Object toList(@RequestParam(value = "pn", defaultValue = "1") Integer pn) {
//引入分页插件pagehelp
//在查询之前开启,传入页码,以及每页的大小
PageHelper.startPage(pn,5); //pn:页码 5:页大小
//startPage后面紧跟的这个查询就是一个分页查询
List<Student> students = studentService.finAll();
//使用pageInfo包装查询后的结果,只需要将pageInfo交给页面就行了。
//封装了详细的分页信息,包括有我们查询出来的数据,传入分页插件中要显示的页的数目 5 页
PageInfo pageInfo = new PageInfo(students,5);
return pageInfo;
}
启动项目,访问http://localhost:8080/toList:
扩展
各属性说明
//当前页
private int pageNum;
//每页的数量
private int pageSize;
//总记录数
private long total;
//总页数
private int pages;
//结果集
private List<T> list;
//导航页码数
private int navigatePages;
//所有导航页号
private int[] navigatepageNums;
//当前页面第一个元素在数据库中的行号
private int startRow;
//当前页面最后一个元素在数据库中的行号
private int endRow;
//第一页
private int firstPage;
//前一页
private int prePage;
//下一页
private int nextPage;
//最后一页
private int lastPage;
//是否为第一页
private boolean isFirstPage = false;
//是否为最后一页
private boolean isLastPage = false;
//是否有前一页
private boolean hasPreviousPage = false;
//是否有下一页
private boolean hasNextPage = false;