1、pageHelper 介绍
官网介绍:如果你也在用 MyBatis,建议尝试该分页插件,这一定是最方便使用的分页插件。分页插件支持任何复杂的单表、多表分页。
官网地址:<MyBatis 分页插件 PageHelper>
2、pageHelper 的使用
(1)导入 maven 依赖
<!--Mybatis 分页插件-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.2.0</version>
</dependency>
(2)在 Mybatis 全局配置文件中插入以下代码
<plugins>
<!--如果版本较低,引用的类是:com.github.pagehelper.PageHelper-->
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<!--分页参数合理化-->
<property name="reasonable" value="true"/>
</plugin>
</plugins>
(3)开始使用
// page:页码
// pageSize:每页显示的数量
PageHelper.startPage(page, pageSize);
// 这里的 blogList 代表你要封装的数据,可以是一个 List 集合
// 5 代表 页码数量
PageInfo pageInfo = new PageInfo(blogList, 5);
// 然后如果要使用的就是我们定义好的 PageInfo 对象
// 里面封装好了一些属性可以供我们直接调用,例如:
// pageInfo.total : 总页码
// pageInfo.list : 封装的数据
(4)PageInfo 对象的基本属性
//当前页
private int pageNum;
//每页的数量
private int pageSize;
//当前页的数量
private int size;
//由于startRow和endRow不常用,这里说个具体的用法
//可以在页面中"显示startRow到endRow 共size条数据"
//当前页面第一个元素在数据库中的行号
private long startRow;
//当前页面最后一个元素在数据库中的行号
private long endRow;
//总页数
private int pages;
//前一页
private int prePage;
//下一页
private int nextPage;
//是否为第一页
private boolean isFirstPage = false;
//是否为最后一页
private boolean isLastPage = false;
//是否有前一页
private boolean hasPreviousPage = false;
//是否有下一页
private boolean hasNextPage = false;
//导航页码数
private int navigatePages;
//所有导航页号
private int[] navigatepageNums;
//导航条上的第一页
private int navigateFirstPage;
//导航条上的最后一页
private int navigateLastPage;