前言
项目中数据分页是一个很常见的需求,目前大部分项目都会使用pagehelper进行分页,那么在使用的过程中是否考虑如下问题?
基本集成
引入jar包
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>${pagehelper.version}</version>
</dependency>
Yml配置文件中添加相关配置
pagehelper:
helperDialect: mysql
reasonable: true
supportMethodsArguments: true
params: count=countSql
封装相关分页方法
分页参数类
public class PageParam<T> implements Serializable
{
private static final long serialVersionUID = -7916211163897873899L;
private int pageNum=1;
private int pageSize=10;
//条件参数
private T param;
//排序字段
private String orderBy;
public int getPageSize()
{
return pageSize;
}
public void setPageSize(int pageSize)
{
this.pageSize = pageSize;
}
public int getPageNum()
{
return pageNum;
}
public void setPageNum(int pageNum)
{
this.pageNum = pageNum;
}
public T getParam()
{
return param;
}
public void setParam(T param)
{
this.param = param;
}
public String getOrderBy()
{
return orderBy;
}
public void setOrderBy(String orderBy)
{
//需要注意sql注入
this.orderBy = orderBy;
}
}
分页结果类
public class PagedList<T> implements Serializable
{
private static final long serialVersionUID = -1253790062865437768L;
private int pageNum = 1;
private List<T> data = null;
private int pageCount = 0;
private int recordCount = -1;
private int pagingType = 0;
private int pageSize;
private String orderBy;
/**
* @return the pageSize
*/
public int getPageSize()
{
return pageSize;
}
/**
* @param pageSize
* the pageSize to set
*/
public void setPageSize(int pageSize)
{
if (pageSize <= 0)
{
return;
}
this.pageSize = pageSize;
}
/**
* @return the pageCount
*/
public int getPageCount()
{
return pageCount;
}
/**
* @param pageCount