1.引入分页插件依赖
<!--pagehelper -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.12</version>
</dependency>
2.配置yml
# 分页插件配置
pagehelper:
helper-dialect: mysql #所支持的数据库
support-methods-arguments: true #是否支持传参
3.使用分页插件,在查询前使用分页插件
原理:统一拦截sql,为其提供分页功能
/**
* page: 要查询第几页
* pageSize: 要求每页所显示的条数
*/
PageHelper.startPage(page, pageSize);
4.分页数据封装到PagedGridResult.java 传给前端
private PagedGridResult setterPageGrid(List<?> list, Integer page){
PageInfo<?> pageList = new PageInfo<>(list);
PagedGridResult grid = new PagedGridResult();
grid.setPage(page);
grid.setRows(list);
grid.setTotal(pageList.getPages());
grid.setRecords(pageList.getTotal());
return grid;
}
// 例如
PageHelper.startPage(page, pageSize);
//已分页处理的数据。
List<ItemCommentVo> list = itemsMapperCustom.queryItemComments(map);
return setterPageGrid(list,page);
import java.util.List;
public class PagedGridResult {
private int page; //当前页数
private int total; // 总页数
private long records; // 总记录数
private List<?> rows; // 每页显示的内容
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public long getRecords() {
return records;
}
public void setRecords(long records) {
this.records = records;
}
public List<?> getRows() {
return rows;
}
public void setRows(List<?> rows) {
this.rows = rows;
}
}