前言
项目中数据分页是一个很常见的需求,目前大部分项目都会使用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

本文详细介绍了Spring Boot集成PageHelper的步骤,并讨论了分页过程中的SQL注入防范、自定义SQL计数、分页失效场景及性能优化。针对大表分页性能问题,提出了优化SQL的方法,强调合理使用PageHelper以避免错误。
1690

被折叠的 条评论
为什么被折叠?



