项目列表展示都需要分页,之前都是用公司封装的方法,最近项目需要用PageHelper分页插件,简单做个记录。
第一步、导包(或者导入坐标)
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.12</version>
</dependency>
第二步 使用PageHelper
这就结束 后面查询的结果就是分页后的结果了
当然想要实际项目使用,可以封装一些。
封装分页类
package com.jydw.core.PageCore;
public class PageRequest {
/**
* 当前页码
*/
private int pageNum;
/**
* 每页数量
*/
private int pageSize;
public int getPageNum() {
return pageNum;
}
public void setPageNum(int pageNum) {
this.pageNum = pageNum;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
}
引入PageInfo 类
@Override
public PageInfo selectPersonDetailByTime(String eventTime,PageRequest pageRequest) {
PageHelper.startPage(pageRequest.getPageNum(),pageRequest.getPageSize());
List<SysRxtd> sysRxtds = sysRxtdMapper.selectPersonDetailByTime(eventTime);
PageInfo pageInfo = new PageInfo(sysRxtds);
return pageInfo;
}
这样在RestController就可以通过pageInfo获取到返回list,当前页数等参数了。
下面是pageInfo的一些参数
//当前页
private int pageNum;
//每页的数量
private int pageSize;
//当前页的数量
private int size;
//由于startRow和endRow不常用,这里说个具体的用法
//可以在页面中"显示startRow到endRow 共size条数据"
//当前页面第一个元素在数据库中的行号
private int startRow;
//当前页面最后一个元素在数据库中的行号
private int endRow;
//总记录数
private long total;
//总页数
private int pages;
//结果集(每页显示的数据)
private List<T> list;
//第一页
private int firstPage;
//前一页
private int prePage;
//是否为第一页
private boolean isFirstPage = false;
//是否为最后一页
private boolean isLastPage = false;
//是否有前一页
private boolean hasPreviousPage = false;
//是否有下一页
private boolean hasNextPage = false;
//导航页码数
private int navigatePages;
//所有导航页号
private int[] navigatepageNums;