• mybatis-plus集成pagehelper进行分页排序和返回查询总数


    一、项目搭建

    新建一个springboot项目

    1.引入依赖

    pom.xml

      <dependency>
        <groupId>org.springframework.bootgroupId>
         <artifactId>spring-boot-starter-webartifactId>
     dependency>
     
     <dependency>
         <groupId>com.alibabagroupId>
         <artifactId>druid-spring-boot-starterartifactId>
         <version>1.1.23version>
     dependency>
    
     
     <dependency>
         <groupId>mysqlgroupId>
         <artifactId>mysql-connector-javaartifactId>
         <version>8.0.17version>
     dependency>
    
     
     
     <dependency>
         <groupId>com.github.pagehelpergroupId>
         <artifactId>pagehelper-spring-boot-starterartifactId>
         <version>1.4.1version>
     dependency>
    
     
     <dependency>
         <groupId>com.baomidougroupId>
         <artifactId>dynamic-datasource-spring-boot-starterartifactId>
         <version>2.5.3version>
     dependency>
     <dependency>
         <groupId>com.baomidougroupId>
         <artifactId>mybatis-plus-boot-starterartifactId>
         <version>3.1.0version>
     dependency>
     <dependency>
         <groupId>com.baomidougroupId>
         <artifactId>mybatis-plus-generatorartifactId>
         <version>3.2.0version>
     dependency>
    
     <dependency>
         <groupId>org.projectlombokgroupId>
         <artifactId>lombokartifactId>
         <optional>trueoptional>
     dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53

    注意:如果在项目启动时报错:

    Relying upon circular references is discouraged and they are
    prohibited by default. Update your application to remove the
    dependency cycle between beans. As a last resort, it may be possible
    to break the cycle automatically by setting spring.main.
    allow-circular-references to true.

    原因:SpringBoot与PageHelper的版本冲突导致的,使用SpringBoot2.6及以上版本,对应的PageHelper版本应该在1.4.1及以上

    2.配置文件

    application.yml

    server:
      port: 8181
    
    spring:
      datasource:
        # 驱动类
        driver-class-name: com.mysql.cj.jdbc.Driver
        # 连接,注意各个配置,尤其是要一次性执行多条 SQL 时,要 allowMultiQueries=true          useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&serverTimezone=UTC&autoReconnect=true&useSSL=false
        url: jdbc:mysql://192.168.0.182:13307/platform?useUnicode=true&useSSL=false&allowMultiQueries=true&characterEncoding=utf-8&useLegacyDatetimeCode=false&useAffectedRows=true&serverTimezone=GMT%2B8
        # 用户名
        username: root
        # 密码
        password: 123456
    
    ############ mybatis-plus配置 #############
    mybatis-plus:
      type-enums-package: com.zhouquan.entity.enums*
      configuration:
        cache-enabled: true
        log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
        # 关闭sql打印
        # log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
    
    ############ 分页插件PageHelper配置 #############
    pagehelper:
      helperDialect: mysql
      reasonable: true
      supportMethodsArguments: true
      params: count=countSql
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    项目结构

    在这里插入图片描述

    二、使用测试

    在这里插入图片描述
    因此 PageHelper.startPage(pageNum, pageSize, orderField);务必要写在需要执行的查询上面

    1.普通的列表查询

    在这里插入图片描述
    服务的实现类只是简单的列表查询
    在这里插入图片描述

    postman调用后直接看控制台打印结果

    http://192.168.0.146:8181/v1/book_data/list?pageNum=1&pageSize=10&orderField=publish_date asc
    
    • 1

    在这里插入图片描述
    将查询出的list对象放入PageInfo的构造器中,即可获取到总数用于前端分页
    在这里插入图片描述
    返回结果:

    {
        "total": 38,
        "recordList": [
            {
                "id": 25,
                "title": "野草",
                "author": "鲁迅",
                "publishDate": "1973-03-01"
            },
            {
                "id": 14,
                "title": "呐喊",
                "author": "鲁迅",
                "publishDate": "1973-03-01"
            }
        ...
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    2.自定义sql列表查询

    controller.java
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    控制台打印
    在这里插入图片描述

    三、pagehelper的实现

    官方文档写的更清晰
    https://pagehelper.github.io/docs/interceptor/

  • 相关阅读:
    vue 的报告页面,生成pdf,使用html2canvas , 下载pdf格式文件。多页分页下载
    基于最小二乘支持向量机(LS-SVM)进行分类、函数估计、时间序列预测和无监督学习附Matlab代码
    Redis缓存预热、缓存雪崩、缓存击穿、缓存穿透
    毫米波成像 论文阅读笔记 | HawkEye, CVPR 2020
    【数据结构与算法】递归全流程详细剖析 | 详解图的深度优先遍历
    TCP与UDP的区别
    面试知识点整理:Skia 架构的场景渲染
    Python最佳实践-构建自己的第三方库
    ACTF flutter逆向学习
    不同类型的生产者
  • 原文地址:https://blog.csdn.net/qq_29864051/article/details/126189124