• 如何在Spring Boot中整合PageHelper实现分页功能


    1.前言

            在开发web应用程序时,经常会遇到需要对数据库中的数据进行分页查询的情况。为了简化分页查询的实现过程,我们可以利用PageHelper这个优秀的分页插件来实现分页功能。本文将介绍如何在Spring Boot项目中整合PageHelper,并演示如何使用它来实现分页功能。

    2.添加依赖 

    首先,在你的Spring Boot项目中的pom.xml文件中添加PageHelper的依赖

    
            
                com.github.pagehelper
                pagehelper-spring-boot-starter
                1.4.6
            

    3.声明一个统一返回类

    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public class PageBean {
        private int total;//总记录数
        private List items;//数据列表
    }

    4.使用PageHelper实现分页查询 

    接下来,我将演示如何在Service层中使用PageHelper来实现分页查询。假设我们有一个UserService来处理用户信息的查询,我们可以按照以下步骤来实现分页功能:

    @Override
    public PageBean
    getPageArticle(Integer pageNum, Integer pageSize, String categoryId, String state) { //1.创建PageBean用于封装查询好的数据 PageBean
    pageBean = new PageBean<>(); //2.开启分页查询 //开启后PageHelper在底层,会拦截查询前的SQL语句,在其后面加上类似LIMIT等数据库特定的分页语句 PageHelper.startPage(pageNum, pageSize); //3.调用数据层查询含条件的,pageHelper自动拼接sql语句 //获得创建人id Map map = ThreadLocalUtil.get(); Integer userId = (Integer) map.get("id"); List
    articles = articleDao.getPageArticle(userId,categoryId,state); //Page中提供方法,可以获取PageHelper分页查询后 得到总记录条数和当前数据 Page
    p = (Page
    ) articles;//如果不强转的话多态是不允许父类类型调用子类特有的方法的 //把数据填充到pageBean中 pageBean.setTotal(p.getPages()); pageBean.setItems(p.getResult()); return pageBean; }

            这里把返回结果List前传成Page就是因为多态的弊端,无法调用子类特有的方法,Page是List的实现类所以说要调用Page的getPages()和getResult()来获取条数和数据集合,就需要强转。

             还有一点要注意的就是,当我开启分页查询 PageHelper.startPage(pageNum, pageSize);Pagehelper会用Aop的思想帮我们自动在此方法执行的sql中拼接一个limit子句。

    5.总结

    至此,我们已经完成了在Spring Boot项目中整合PageHelper并实现分页查询功能的全部步骤。通过以上配置和代码,我们可以轻松地实现数据库分页查询,提高了开发效率并改善了用户体验。

    希望本文能够对你有所帮助,祝你在Spring Boot项目中顺利实现分页功能!

  • 相关阅读:
    C++ 类和对象 (上)
    010 springboot整合mybatis-plus 登录页面和首页不拦截
    持续集成与持续交付(CI/CD):探讨在云计算中实现快速软件交付的最佳实践
    大学生HTML期末作业网页:使用DIV+CSS技术制作一个简单的小说网站 (3个页面 登录+注册+首页 )
    初看一脸问号,看懂直接跪下!
    Sass语法小册-笔记迁移
    大数据-玩转数据-双流JOIN
    [matconvnet]matconvnet-1.0-beta-25在cuda11.1以上编译问题总结
    squid代理服务器
    02 Spring_IOC 控制反转
  • 原文地址:https://blog.csdn.net/m0_74749208/article/details/139277112