【SpringBoot】-- 使用PageHelper实现分页查询

1、PageBean

PageBean实体类:

复制代码
@Data
@NoArgsConstructor
@AllArgsConstructor
public class PageBean <T>{
    private Long total;//总条数
    private List<T> items;//当前页数据集合
}

2、Controller

Controller类:

前端需要传入页码和每页数量。以PageBean类型返回。

3、Impl

具体实现:

调用PageHelper的startPage方法;根据条件查询数据库中所有的数据并保存到list中,将list强转为Page类型,调用Page类型的setTotal和setItems方法可以实现分页,最后返回PageBean。

复制代码
    @Override
    public PageBean<Player> list(Integer pageNum, Integer pageSize, Integer categoryId,String name) {
        //创建PageBean对象
        PageBean<Player> pb = new PageBean<>();
        //开启分页查询 pagehelper
        PageHelper.startPage(pageNum,pageSize);
        //调用mapper
        Map<String,Object> map = ThreadLocalUtil.get();
        Integer userId;
        if(map != null){
            userId = (Integer) map.get("id");
        }else{
            userId = null;
        }
        List<Player> as = playerMapper.list(userId,categoryId,name);
        Page<Player> p = (Page<Player>) as;

        //把数据填充到pagebean
        pb.setTotal(p.getTotal());
        pb.setItems(p.getResult());
        return pb;
    }
相关推荐
身如柳絮随风扬8 分钟前
多数据源切换实战:从业务场景到3种实现方案全解析
java·分布式·微服务
Java小生不才39 分钟前
Spring AI文生音
java·人工智能·spring
凯尔萨厮43 分钟前
Springboot2.x+Thymeleaf项目创建
java
fish_xk1 小时前
map和set
java·开发语言
李崧正1 小时前
Java技术分享:Lambda表达式与函数式编程
java·开发语言·python
老了,不知天命1 小时前
鳶尾花項目JAVA
java·开发语言·机器学习
永远不会的CC1 小时前
浙江华昱欣实习(4月23日~ 4月19日)
后端·学习
二哈赛车手1 小时前
新人笔记---实现简易版的rag的bm25检索(利用ES),以及RAG上传时的ES与向量数据库双写
java·数据库·笔记·spring·elasticsearch·ai
winner88811 小时前
从零吃透C++命名空间、std、#include、string、vector
java·开发语言·c++
AI人工智能+电脑小能手1 小时前
【大白话说Java面试题】【Java基础篇】第26题:Java的抽象类和接口有哪些区别
java·开发语言·面试