对查询到数据操作后再进行分页
对于分页插件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空类型转换和智能类型转换