• 如何在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项目中顺利实现分页功能!

  • 相关阅读:
    设计一款可扩展和基于windows系统的一键处理表格小工具思路
    Django干货:自定义过滤器和标签
    C++ 生成随机数 srand 和 time 函数
    售前工程师工作内幕揭秘:基础认知
    C语言 | Leetcode C语言题解之第187题重复的DNA序列
    Arduino驱动LIS2DH三轴加速度传感器(惯性测量传感器篇)
    【专用名词的离线语音识别在2024年底的解决方法调查-会议签到的补充】
    (八)cookieAndSession——PHP
    【二:测试报告的配置】
    汽车区域控制器的关键技术和MCU解决方案深度分析
  • 原文地址:https://blog.csdn.net/m0_74749208/article/details/139277112