对查询到数据操作后再进行分页
对于分页插件PageHelper:通常情况下使用在查询前加上
PageHelper.startPage(vo.getPageNum(), vo.getPageSize());
即可,但当我们要对查询到的数据进行进一步操作时候(比如统计或者计算他们的个别项数据之和后再分页),数据就不是我们想要的数据了,则我们需要手动进行分页,下面展示手动分页步骤:
//list 需要分页的数据列表 getPageNum() 获取当前页码 ;getPageSize()获取页面显示多少条数
PageInfo pageInfo = new PageInfo(list.isEmpty() ? list.emptyList() : list);
pageInfo.setList(list.isEmpty() ? Collections.emptyList() : startPage(list, vo.getPageNum(), vo.getPageSize()));
pageInfo.setPageNum(vo.getPageNum());
pageInfo.setPageSize(vo.getPageSize());
分页依赖
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.3</version>
</dependency>
分页方法:
public static List startPage(List list, Integer pageNum, Integer pageSize) {
if (list == null) {
return Collections.emptyList();
}
if (list.isEmpty()) {
return Collections.emptyList();
}
//记录总数
Integer count = list.size();
//开始索引
int fromIndex = (pageNum - 1) * pageSize;
//结束索引
int toIndex = pageNum * pageSize;
if (fromIndex + 1 > count) {
return Collections.emptyList();
}
if (pageNum * pageSize > count) {
toIndex = count;
}
return list.subList(fromIndex, toIndex);
}
下一篇:
kotlin空类型转换和智能类型转换
