【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;
    }
相关推荐
东阳马生架构4 小时前
商品中心—6.商品考核系统的技术文档
java
晴空月明4 小时前
Java 内存模型与 Happens-Before 关系深度解析
java
excel5 小时前
Nginx 与 Node.js(PM2)的对比优势及 HTTPS 自动续签配置详解
后端
bobz9656 小时前
vxlan 为什么一定要封装在 udp 报文里?
后端
bobz9656 小时前
vxlan 直接使用 ip 层封装是否可以?
后端
皮皮林5518 小时前
SpringBoot 加载外部 Jar,实现功能按需扩展!
java·spring boot
郑道8 小时前
Docker 在 macOS 下的安装与 Gitea 部署经验总结
后端
3Katrina8 小时前
妈妈再也不用担心我的课设了---Vibe Coding帮你实现期末课设!
前端·后端·设计
rocksun8 小时前
认识Embabel:一个使用Java构建AI Agent的框架
java·人工智能
汪子熙8 小时前
HSQLDB 数据库锁获取失败深度解析
数据库·后端