PageHelperPageInfo用法介绍(pagehelper使用方法及参数说明)

PageHelper是一个非常优秀的基于MyBatis分页插件,但是使用PageHelper不仅仅是简单的引入jar包。本文将从几个方面详细阐述PageHelper中的核心概念——PageHelperPageInfo,并给出对应的代码示例。

一、基础概念

PageHelperPageInfo是PageHelper插件中页面信息的核心封装类,主要包括以下内容:

1、pageNum:当前页码

2、pageSize:每页显示的数据条数

3、size:当前页实际数据条数

4、startRow:当前页第一条数据的行号

5、endRow:当前页最后一条数据的行号

6、total:总数据条数

7、pages:总页数

8、list:当前页的数据列表

9、prePage:上一页的页码

10、nextPage:下一页的页码

11、isFirstPage:是否为第一页

12、isLastPage:是否为最后一页

13、hasPreviousPage:是否有前一页

14、hasNextPage:是否有下一页

15、navigatePages:连续显示的页码数量

16、navigatepageNums:所有导航页号

17、navigateFirstPage:导航条上的第一页

18、navigateLastPage:导航条上的最后一页

public class PageHelperPageInfo<T> implements Serializable {
    private static final long serialVersionUID = 1L;
    //getter、setter方法省略
    private int pageNum; // 当前页码
    private int pageSize; // 每页的数据条数
    private int size; // 当前页实际的数据条数
    private int startRow; // 当前页第一条数据的行号
    private int endRow; // 当前页最后一条数据的行号
    private long total; // 数据总条数
    private int pages; // 数据总页数
    private List<T> list; // 当前数据列表
    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 = 8; // 导航条上显示的连续页码数
    private int[] navigatepageNums; // 所有导航页号
    private int navigateFirstPage; // 导航条上的第一页
    private int navigateLastPage; // 导航条上的最后一页
}

二、使用示例

1、获取PageHelperPageInfo信息

在分页查询后,我们可以通过PageInfo类获取分页信息:

List<User> userList = userMapper.selectByPage(pageNum, pageSize);
PageHelperPageInfo<User> pageInfo = new PageHelperPageInfo<>(userList);

2、输出PageHelperPageInfo信息

直接将PageHelperPageInfo对象输出,无需对其toString方法进行重写,输出可得到如下信息:

PageInfo{pageNum=2, pageSize=10, size=10, startRow=10, endRow=19, total=20,
pages=2, list=..., prePage=1, nextPage=3, isFirstPage=false, isLastPage=false, hasPreviousPage=true,
hasNextPage=true, navigatePages=8, navigatepageNums=[1, 2], navigateFirstPage=1, navigateLastPage=2}

3、使用PageHelper提供的方法

PageHelper提供了很多便捷的方法来处理分页逻辑,其中getPageInfo方法可以直接获取PageHelperPageInfo对象。我们还可以通过setOrderBy方法设置排序规则,以及startPage和endPage方法设置分页信息:

PageHelper.startPage(pageNum, pageSize);
PageHelper.orderBy("id");
List<User> userList = userMapper.selectAll();
PageHelperPageInfo<User> pageInfo = new PageHelperPageInfo<>();
pageInfo.setList(userList);
PageHelperPageInfo<User> pageInfo2 = PageHelper.getPageInfo(userList);

三、常用设置

1、导航页码数

通过navigatePages设置导航条上显示的连续页码数量,代码示例如下:

PageHelper.startPage(pageNum, pageSize);
PageHelperPageInfo<User> pageInfo = PageHelperPageInfo<>();
pageInfo.setNavigatePages(5);

2、是否自动统计总数

通过setCount方法设置是否自动统计总数,默认自动统计,代码示例如下:

PageHelper.startPage(pageNum, pageSize);
PageHelperPageInfo<User> pageInfo = PageHelperPageInfo<>();
pageInfo.setCount(false);

3、导航条上的第一页和最后一页

通过navigateFirstPage和navigateLastPage设置导航条上的第一页和最后一页,代码示例如下:

PageHelper.startPage(pageNum, pageSize);
PageHelperPageInfo<User> pageInfo = PageHelperPageInfo<>();
pageInfo.setNavigateFirstPage(1);
pageInfo.setNavigateLastPage(pageInfo.getPages());

四、总结

PageHelperPageInfo是PageHelper插件中页面信息的核心封装类,通过PageHelperPageInfo我们可以轻松地获取到分页相关的信息,并进行便捷的处理。本文从PageHelperPageInfo的基础概念、使用示例和常用设置三个方面进行了详细的阐述,相信读者已经掌握了PageHelperPageInfo的用法。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注