对查询到数据操作后再进行分页

对于分页插件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);
    }

你可能感兴趣的:(Java,java,开发语言)