首页 > 其他分享 >Springboot 3.x 使用PageHelper实现MyBatis分页查询

Springboot 3.x 使用PageHelper实现MyBatis分页查询

时间:2023-08-10 20:26:55浏览次数:40  
标签:status 06 Springboot 23 pageQueryMoDetDTO PageHelper 2023 MyBatis stuid

开发环境

SpringBoot 3.0.1
Maven 工程
JDK OpenJdk 17.0.6

引入pom依赖


<dependency>
  <groupId>com.github.pagehelper</groupId>
  <artifactId>pagehelper-spring-boot-starter</artifactId>
  <version>1.4.7</version>
</dependency>

注意: Springboot 3.x 版本必须引用1.4.6版本以上,否则无效 GitHub官方描述

设置 application.yml

#MyBatis分页工具
pagehelper:
  helper-dialect: mysql
  reasonable: true
  support-methods-arguments: true
  params: count=countSql

代码展示

PageQueryMoDetDTO

/**
 * 分页查询查询德育学分明细DTO
 * @Author Hmi
 * @Date 2023/7/31 8:36
 */
@Data
public class PageQueryMoDetDTO implements Serializable {
    /**
     * 学号
     */
    private String stuid;
    /**
     * 状态值   0-封禁   1-正常
     */
    private Integer status;
    /**
     * 页码
     */
    private int page;
    /**
     * 每页数据量
     */
    private  int pageSize;

    // ... 这里使用了lombok简化了get/set方法
}
MoralDetailsController
 @GetMapping("/pageQueryMoDet")
    @Operation(summary = "分页查询数据详情")
    public Result queryMoDet(PageQueryMoDetDTO pageQueryMoDetDTO) {
        log.info("分页查询数据详情:{}", pageQueryMoDetDTO);
        return moralDetailsServer.pageQueryMoDet(pageQueryMoDetDTO);

    }
MoralDetailsMapper
    List<Moraldetails> pageQueryMoDet(PageQueryMoDetDTO pageQueryMoDetDTO);
MoralDetailsMapper.xml
 <select id="pageQueryMoDet" resultType="Moraldetails">
        select * from moraldetails
        <where>
            stuid = #{stuid}
            <if test="status != null">
                and status = #{status}
            </if>
            order by create_time desc
        </where>
    </select>
MoralDetailsServer
    Result pageQueryMoDet(PageQueryMoDetDTO pageQueryMoDetDTO);
MoralDetailsServerImpl
    public Result pageQueryMoDet(PageQueryMoDetDTO pageQueryMoDetDTO) {
        PageHelper.startPage(pageQueryMoDetDTO.getPage(), pageQueryMoDetDTO.getPageSize());
        List<Moraldetails> list = moralDetailsMapper.pageQueryMoDet(pageQueryMoDetDTO);
        PageInfo<Moraldetails> pageInfo = new PageInfo<Moraldetails>(list);
        return Result.ok(pageInfo);
    }

运行调试

使用ApiFox或其他的Api工具发送请求

服务器输出运行日志

成功获取分页查询数据

{
    "code": 200,
    "success": true,
    "msg": "操作成功",
    "result": {
        "total": 984,
        "list": [
            {
                "id": 1005,
                "stuid": "215534999",
                "name": null,
                "particulars": "ceshiceshi",
                "type": 0,
                "changeValues": 100,
                "way": 3,
                "operator": "215534120",
                "status": 0,
                "createTime": "2023-06-17 19:15:19",
                "updateTime": "2023-06-23 20:27:47",
                "createUser": "",
                "updateUser": ""
            },
            {
                "id": 5,
                "stuid": "215534999",
                "name": null,
                "particulars": "Navicat Cloud could not connect                   ",
                "type": 0,
                "changeValues": 15,
                "way": 1,
                "operator": "215534120",
                "status": 0,
                "createTime": "2023-06-10 17:53:05",
                "updateTime": "2023-06-23 20:37:28",
                "createUser": "",
                "updateUser": ""
            },
            {
                "id": 7,
                "stuid": "215534999",
                "name": null,
                "particulars": "The Main Window consists of several               ",
                "type": 0,
                "changeValues": 7,
                "way": 5,
                "operator": "215534120",
                "status": 0,
                "createTime": "2023-06-10 17:53:05",
                "updateTime": "2023-06-23 20:37:05",
                "createUser": "",
                "updateUser": ""
            },
            {
                "id": 21,
                "stuid": "215534999",
                "name": null,
                "particulars": "It wasn’t raining when Noah built the ark.      ",
                "type": 1,
                "changeValues": 14,
                "way": 4,
                "operator": "215534120",
                "status": 0,
                "createTime": "2023-06-10 17:53:05",
                "updateTime": "2023-06-23 20:27:47",
                "createUser": "",
                "updateUser": ""
            },
            {
                "id": 23,
                "stuid": "215534999",
                "name": null,
                "particulars": "Success consists of going from                    ",
                "type": 1,
                "changeValues": 8,
                "way": 3,
                "operator": "215534120",
                "status": 0,
                "createTime": "2023-06-10 17:53:05",
                "updateTime": "2023-06-23 20:27:47",
                "createUser": "",
                "updateUser": ""
            }
        ],
        "pageNum": 1,
        "pageSize": 5,
        "size": 5,
        "startRow": 1,
        "endRow": 5,
        "pages": 197,
        "prePage": 0,
        "nextPage": 2,
        "isFirstPage": true,
        "isLastPage": false,
        "hasPreviousPage": false,
        "hasNextPage": true,
        "navigatePages": 8,
        "navigatepageNums": [
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8
        ],
        "navigateFirstPage": 1,
        "navigateLastPage": 8
    },
    "timestamp": 1691668424792
}

标签:status,06,Springboot,23,pageQueryMoDetDTO,PageHelper,2023,MyBatis,stuid
From: https://www.cnblogs.com/hmi1234/p/17621390.html

相关文章

  • mybatis源码阅读
    配置解析首先来看一个简单使用例子Stringresource="mybatis-config.xml";//读取配置,创建sessionFactorySqlSessionFactorysessionFactory=newSqlSessionFactoryBuilder().build(Resources.getResourceAsStream(resource));//opensessionSqlSessionsqlSession=sess......
  • Springboot 测试@Test 工具
    别再用main方法测试了,太Low!这才是专业的SpringBoot项目测试方法!(qq.com)......
  • springboot quartz 定时任务
    定时任务实现方式quartz定时调用http请求quertz定时调用openfeginquartz定时调用普通定时任务springboot集成quartzpom.xml添加配置<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-quartz</artifactId>......
  • 基于SpringBoot应⽤的logback⽇志配置
    SpringBoot默认整合了logback-classic⽇志框架,我们需要对logback⽇志框架进⾏配置以⾃定义⽇志输出格式、⽇志⽂件配置、⽇志⽂件保存策略等信息<?xmlversion="1.0"encoding="UTF-8"?><configuration><appendername="stdout"class="ch.qos.logback.core.ConsoleA......
  • springboot~alibaba.fastjson2序列化时过滤字段
    当我们使用阿里的alibaba.fastjson2进行json序列化时,你可以通过方法参数PropertyFilter来实现对字段的获取,将需要序列化的字段写到PropertyFilter对象里,当然也可以将不进行序列化的写到这里,进行逻辑非操作即可实体classPerson{privateStringfirstName;privateStr......
  • 使用 SpringBoot 进行优雅的数据验证
    JSR-303规范在程序进行数据处理之前,对数据进行准确性校验是我们必须要考虑的事情。尽早发现数据错误,不仅可以防止错误向核心业务逻辑蔓延,而且这种错误非常明显,容易发现解决。JSR303规范(BeanValidation规范)为JavaBean验证定义了相应的元数据模型和API。在应用程序中,通过使......
  • 什么是Redis,如何使用Redis,SpringBoot如何集成Redis
    官网链接:Redis首先简单理解一下1、什么是redisredis是一种开源的、内存中数据结构存储,用作数据库、缓存和消息代理。redis数据结构包含五大数据类型:字符串、散列、列表、集合、带范围查询的排序集合以及三大特殊数据类型:位图、超级日志、地理空间索引。redis内置复制、Lua脚本......
  • MyBatis Plus 大数据量查询优化
    大数据量操作的场景大致如下:数据迁移数据导出批量处理数据在实际工作中当指定查询数据过大时,我们一般使用分页查询的方式一页一页的将数据放到内存处理。但有些情况不需要分页的方式查询数据或分很大一页查询数据时,如果一下子将数据全部加载出来到内存中,很可能会发生OOM(内存溢出);......
  • SpringBoot3文件管理
    目录一、简介二、工程搭建1、工程结构2、依赖管理三、上传下载1、配置管理2、上传下载四、Excel文件1、Excel创建2、Excel读取3、解析监听4、导入导出五、参考源码标签:上传.下载.Excel.导入.导出;一、简介在项目中,文件管理是常见的复杂功能;首先文件的类型比较多样,处理起来比......
  • 解密SpringBoot3.0:构建易维护的JavaWeb应用
    SpringBoot3.0最新深入浅出从入门到项目实战,突出Web应用痛点解决方案SpringBoot已经成为Java开发中最流行的框架之一,它提供了一种快速构建、易于扩展的方式,使开发人员能够更加专注于业务逻辑而不是繁琐的配置。而最新的SpringBoot3.0版本将进一步改善开发体验,并提供更多的解决方......