1、maven 依赖

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.3.0</version>
</dependency>

2、工具类

public class PageUtil {
    public static void listToPageInfo(List<?> list, Integer pageSize, Integer pageNum, PageInfo pageInfo) {
        //每页最大显示条数
        pageInfo.setPageSize(pageSize);
        //当前页
        pageInfo.setPageNum(pageNum);
        if (!CollectionUtils.isEmpty(list)) {
            int total =list.size();
            //总条数
            pageInfo.setTotal(total);
            int pages = (int) Math.ceil((double) total/pageSize);
            //总页数
            pageInfo.setPages(pages);
            if (pageNum > pages) {
                pageNum = pages;
                pageInfo.setPageNum(pageNum);
            }
            int fromIndex = (pageNum - 1) * pageSize;
            int toIndex = pageNum * pageSize;
            if (toIndex > total) {
                toIndex = total;
            }
            //结果集
            pageInfo.setList(list.subList(fromIndex,toIndex));
            //当前页的条数
            pageInfo.setSize(toIndex - fromIndex);
            //是否是第一页
            pageInfo.setIsFirstPage(pageNum == 1);
            //是否是最后一页
            pageInfo.setIsLastPage(pageNum == pages);
            //是否有上一页
            pageInfo.setHasPreviousPage(pageNum >= 2 && pageNum <= pages);
            //是否有下一页
            pageInfo.setHasNextPage(pageNum <= pages - 1);
            //上一页页码
            pageInfo.setPrePage(pageNum == 1 ? 1 : pageNum - 1);
            //下一页页码
            pageInfo.setNextPage(pageNum >= pages ? pageNum : pageNum +1);
        } else {
            pageInfo.setList(new ArrayList());
        }
    }

    //测试
    public static void main(String[] args) {
        List<BlogCategoryPO> blogCategoryPOS = new ArrayList<>();
//        blogCategoryPOS.add(new BlogCategoryPO(1, 1, 1, new Date(), new Date()));
//        blogCategoryPOS.add(new BlogCategoryPO(2, 2, 2, new Date(), new Date()));
//        blogCategoryPOS.add(new BlogCategoryPO(3, 3, 3, new Date(), new Date()));
//        blogCategoryPOS.add(new BlogCategoryPO(4, 4, 4, new Date(), new Date()));
//        blogCategoryPOS.add(new BlogCategoryPO(5, 5, 5, new Date(), new Date()));
        PageInfo<BlogCategoryPO> pageInfo = new PageInfo<>();
        PageUtil.listToPageInfo(blogCategoryPOS,4,11,pageInfo);
        System.out.println(pageInfo);
    }

}

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐