Spring Boot集成pagehelper分页插件

  • 1、在pom.xml中添加pagehelper依赖
  • 2、修改配置文件
  • 3、修改Controller里面的查询方法
  • 4、返回分页信息
    • 1. 修改UserMapper
    • 2. 修改UserService
    • 3. 修改UserServiceImpl
    • 4. 用com.github.pagehelper.PageInfo类封装Page数据
    • 5. 测试

在我们的项目中经常要用到查询的分页,这也是一个非常实用的功能,在这里我记录一下springboot集成pagehelper这个分页查询插件

1、在pom.xml中添加pagehelper依赖

在pom.xml中添加下面的代码:

        <!-- pagehelper 插件 --><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.2.5</version></dependency>

2、修改配置文件

在application.properties添加如下代码:

#pagehelper分页插件配置
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql

3、修改Controller里面的查询方法

加上参数@RequestParam(defaultValue = "1") int pageNo, @RequestParam(defaultValue = "10") int pageSize),两个参数表示页号和每页大小;然后加上PageHelper.startPage(pageNo,pageSize); 表示使用这个插件。
其他代码和之前一样。
具体代码如下:

    //查找所有用户@ResponseBody@RequestMapping("/user/findAllUsers")public ResultInfo findAllUsers(@RequestParam(defaultValue = "1") int pageNo, @RequestParam(defaultValue = "10") int pageSize){try{PageHelper.startPage(pageNo,pageSize);List<User> users = userService.findAllUsers();if (users.size()<=0){info.setCode(Code.NODATA);return info;}HashMap<String,Object> userHashMap = new HashMap<>();userHashMap.put("users",users);info.setData(userHashMap);return info;}catch (Exception e){e.printStackTrace();}info.setCode(Code.NODATA);return info;}

postman测试结果:

需要注意的是,分页代码PageHelper.startPage(pageNo,pageSize);只对其后的第一个查询有效。如把代码改为下面这样,添加一个查询,则第二个查询并没有分页

            PageHelper.startPage(pageNo,pageSize);List<User> users = userService.findAllUsers(); //这个查询会分页List<User> users1 = userService.findAllUsers(); //这个查询不会分页

4、返回分页信息

有时候,我们的业务需要我们返回分页的信息,这时候我们要对controller、service、mapper里的方法的返回值做一下修改,将List改为Page,Page是com.github.pagehelper包里的类,它是java.util.ArrayList的子类。

1. 修改UserMapper

// List<User> selectAll();
Page<User> selectAll();

2. 修改UserService

//List<User> findAllUsers();Page<User> findAllUsers();

3. 修改UserServiceImpl


//    @Override
//    public List<User> findAllUsers() {//        return userMapper.selectAll();
//    }@Overridepublic Page<User> findAllUsers() {return userMapper.selectAll();}

4. 用com.github.pagehelper.PageInfo类封装Page数据

关键代码:

PageInfo<User> pageInfo = new PageInfo<>(userService.findAllUsers());

完整代码如下:

    //查找所有用户@ResponseBody@RequestMapping("/user/findAllUsers")public ResultInfo findAllUsers(@RequestParam(defaultValue = "1") int pageNo, @RequestParam(defaultValue = "10") int pageSize){try{PageHelper.startPage(pageNo,pageSize);PageInfo<User> pageInfo = new PageInfo<>(userService.findAllUsers());if (pageInfo.getSize()<=0){info.setCode(Code.NODATA);return info;}HashMap<String,Object> userHashMap = new HashMap<>();userHashMap.put("users",pageInfo);info.setData(userHashMap);return info;}catch (Exception e){e.printStackTrace();}info.setCode(Code.NODATA);return info;}

5. 测试

结果如下:
它返回了页面的很多信息

自此,简单的Spring Boot集成pagehelper分页插件就完成啦!

Spring Boot集成pagehelper分页插件相关推荐

  1. Springboot 系列(十二)使用 Mybatis 集成 pagehelper 分页插件和 mapper 插件

    前言 在 Springboot 系列文章第十一篇里(使用 Mybatis(自动生成插件) 访问数据库),实验了 Springboot 结合 Mybatis 以及 Mybatis-generator 生 ...

  2. MBG真香 Spring Boot集成Mybatis Generator插件

    Mybatis中文官网对mybatis-generator的介绍:http://www.mybatis.cn/archives/885.html Mybatis官网对mybatis-generator ...

  3. Spring Boot系列六 Spring boot集成mybatis、分页插件pagehelper

    1. 概述 本文的内容包括如下内容: Spring Boot集成mybatis Spring Boot集成pagehelper分页插件,定义分页的相关类 实现工具类:model转dto,实现数据层和传 ...

  4. spring boot+mybatis+thymeleaf+pagehelper分页插件实现分页功能

    文章目录 前言 正文 业务场景 后端 pom.xml application.yml 实体类video.java和User.java----映射VideoMapper.xml----VideoMapp ...

  5. spring boot整合mybatis+通用mapper+pagehelper分页插件

    spring boot整合mybatis+通用mapper+pagehelper分页插件 pom依赖 <?xml version="1.0" encoding="U ...

  6. springboot2.0.5集成mybatis(PageHelper分页插件、generator插件使用)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/zab635590867/article ...

  7. Spring Boot 集成MyBatis

    Spring Boot 集成MyBatis Spring Boot 系列 Spring Boot 入门 Spring Boot 属性配置和使用 Spring Boot 集成MyBatis Spring ...

  8. 6.3 Spring Boot集成mongodb开发

    6.3 Spring Boot集成mongodb开发 本章我们通过SpringBoot集成mongodb,Java,Kotlin开发一个极简社区文章博客系统. 0 mongodb简介 Mongo 的主 ...

  9. SpringBoot入门篇--整合mybatis+generator自动生成代码+druid连接池+PageHelper分页插件

    我们这一一篇博客讲的是如何整合Springboot和Mybatis框架,然后使用generator自动生成mapper,pojo等文件.然后再使用阿里巴巴提供的开源连接池druid,这个连接池的好处我 ...

最新文章

  1. Horticulture Research 模式图的手稿
  2. SpringBoot学习(一)
  3. iOS开发中显示实时的FPS值
  4. mysql 自定义函数
  5. voip 音频采集时间_数字音频基础------从PCM说起
  6. java修饰类的关键字_JAVA中的修饰关键字
  7. IDEA中的HTTP Client Editor测试API
  8. python入门——P50模块:模块就是程序
  9. NDK error Error 126 make: *** Deleting file
  10. LightOJ 1258 Making Huge Palindromes(KMP)
  11. 高层管理者的必备技能
  12. 【小白话通信】离散分布的生成
  13. 电脑qq传到我的android文件在哪里,手机QQ传文件到我的电脑功能(QQ数据线)的使用方法...
  14. 破解物联网落地困境-阿里云硬件接入最佳实践
  15. MicroSemi LiberoSoc启动太慢的问题
  16. 数学建模 MATLAB绘制心形线
  17. 0.96OLED图标取模,包括信号图标,蓝牙图标,闹钟,电池
  18. 【云原生】Helm 架构和基础语法详解
  19. OpenSSHOpenSSL至最新版本
  20. 目标检测相关论文和代码资源汇总

热门文章

  1. PyQt5桌面应用开发(11):摸鱼也要讲基本法之桌面精灵
  2. 解决在安卓系统微信中打开网页无法上传图片的问题
  3. 电力系统经济调度-入门版
  4. JuiceSSH手机端ssh连接
  5. repo 切换manifest
  6. 硬盘在计算机内部,计算机硬盘内部结构如图所示,读写磁头在计算机的指令下移动到某个位置,硬盘盘面在电机的带动下......
  7. 这五年,“IT学子成长指导”专栏与你同行
  8. python链表操作_Python链表操作(实现)
  9. c#中使用轻量级数据库sqlite开发总结
  10. RTL8188EUS Anaroid M Porting