Springboot Mybatis使用pageHelper实现分页查询

2023-05-16

以下介绍实战中数据库框架使用的是mybatis,对整合mybatis此处不做介绍。

使用pageHelper实现分页查询其实非常简单,共两步:

一、导入依赖;   

二、添加配置;   

 

 

那么开始,

第一步:

pom.xml添加依赖:

<!--分页插件 pagehelper -->
<dependency>
   <groupId>com.github.pagehelper</groupId>
   <artifactId>pagehelper-spring-boot-starter</artifactId>
   <!-- 特别注意版本问题 -->
   <version>1.2.3</version>
</dependency>

 第二步:

aplication.yml添加配置:

#分页pageHelper
pagehelper:
  helper-dialect: mysql
  reasonable: true
  support-methods-arguments: true

 ·helper-dialect:

配置使用哪种数据库语言,不配置的话pageHelper也会自动检测

·reasonable:

配置分页参数合理化功能,默认是false。 #启用合理化时,如果pageNum<1会查询第一页,如果pageNum>总页数会查询最后一页; #禁用合理化时,如果pageNum<1或pageNum>总页数会返回空数据。

·params:

为了支持startPage(Object params)方法,增加了该参数来配置参数映射,用于从对象中根据属性名取值; 可以配置 pageNum,pageSize,count,pageSizeZero,reasonable,不配置映射的用默认值, 默认值为pageNum=pageNum;pageSize=pageSize;count=countSql;reasonable=reasonable;pageSizeZero=pageSizeZero。

·support-methods-arguments:

支持通过Mapper接口参数来传递分页参数,默认值false,分页插件会从查询方法的参数值中,自动根据上面 params 配置的字段中取值,查找到合适的值时就会自动分页。

第三步,

先将需要查询的数据库表建起来,简单填充数据:

然后mapper层写上查询该表数据返回List的方法:

//查询所有
List<User> queryUserInfo();

在service以及impl也写上相关方法:

//查询所有
List<User> queryUserInfo();
@Override
public List<User> queryUserInfo() {

    return userMapper.queryUserInfo();
}

相关的mapper.xml就不做过多介绍了,就是一个查询。

 

ok,接下来开始使用分页插件,配合上面的查询实现分页查询:

在userService上添加 分页查询方法2个:

List<User> findAllUserByPageF(int pageNum,int pageSize);

PageInfo<User> findAllUserByPageS(int pageNum, int pageSize);

userServiceImpl上添加 分页查询实现:

@Override
public List<User> findAllUserByPageF(int pageNum, int pageSize) {
    // TODO Auto-generated method stub
    PageHelper.startPage(pageNum, pageSize);
    List<User> lists = userMapper.queryUserInfo();
    return lists;
}

@Override
public PageInfo<User> findAllUserByPageS(int pageNum, int pageSize) {
    // TODO Auto-generated method stub
    PageHelper.startPage(pageNum, pageSize);
    List<User> lists = userMapper.queryUserInfo();
    PageInfo<User> pageInfo = new PageInfo<User>(lists);
    return pageInfo;

}

最后在controller写上测试接口,

@GetMapping("/testPageHelper1")
public PageInfo<User> testPageHelper1(){
    PageInfo<User> queryResult = userService.findAllUserByPageS(1, 5);
    return queryResult;
}

@GetMapping("/testPageHelper2")
public List<User> testPageHelper2(){
    List<User> queryResult = userService.findAllUserByPageF(1, 5);
    return queryResult;
}

 

然后用POSTMAN 分别调接口看看结果:

 

 

最后附上分别调用10次的性能分析简图(来自DRUID):

OK,简单实战介绍到此吧。

 

 

PageInfo的参数解释,可以看看我这篇:

https://blog.csdn.net/qq_35387940/article/details/105067813 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Springboot Mybatis使用pageHelper实现分页查询 的相关文章

  • 饿了么交易系统 5 年演化史

    作者介绍 xff1a 杨凡 xff0c 花名挽晴 xff0c 饿了么高级架构师 xff0c 2014 年加入饿了么 xff0c 2018 年随饿了么被阿里巴巴收购一同加入阿里巴巴 xff0c 4 年团队管理经验 xff0c 4 年主要从事饿
  • 带你了解「美团、百度和滴滴」的分布式 ID 生成系统

    文章目录 美团背景常见方法介绍UUID类snowflake方案数据库生成 Leaf 方案实现Leaf segment 数据库方案双 buffer 优化Leaf 高可用容灾 Leaf snowflake 方案弱依赖 ZooKeeper解决时钟
  • Spring Cloud 优雅下线以及灰度发布

    文章目录 前言优雅下线常见的下线方式优雅的下线方式 灰度发布蓝绿部署滚动部署金丝雀部署 前言 在生产环境中 xff0c 如何保证在服务升级的时候 xff0c 不影响用户的体验 xff0c 这个是一个非常重要的问题 如果在我们升级服务的时候
  • 详述 IntelliJ IDEA 遇到 Maven 项目 pom.xml 文件没有识别的解决方法

    文章目录 问题现象解决方法 问题现象 有的时候 xff0c 我们可能会遇到 IDEA 没有识别 Maven 项目pom xml的问题 xff0c 其表现出来的现象就是 xff1a 究其原因 xff0c 就是 IDEA 把pom xml文件当
  • Spring Boot 自定义 Swagger2 请求 URL 路径的两种方法

    文章目录 前言方法一 xff1a 修改应用根路径方法二 xff1a 引入 Swagger2 前端代码总结 前言 首先 xff0c 把 Swagger2 的依赖引进来 xff1a span class token comment lt swa
  • 使用 Apollo 为静态变量赋值的方法

    Apollo xff08 阿波罗 xff09 是携程框架部门研发的分布式配置中心 xff0c 能够集中化管理应用不同环境 不同集群的配置 xff0c 配置修改后能够实时推送到应用端 xff0c 并且具备规范的权限 流程治理等特性 xff0c
  • 记一次 Gorm 批量插入遇到的问题以及解决方案

    文章目录 问题现象解决方案 问题现象 最初 xff0c 我们用的是老版本的 Gorm xff0c 但是因为老版本不支持批量插入的功能 xff0c 所以我们将 Gorm 做了升级 xff0c 升级到1 21 9版本 https github
  • 3-Raven2百个靶机渗透(精写-思路为主)

    特别注明 xff1a 本文章只用于学习交流 xff0c 不可用来从事违法犯罪活动 xff0c 如使用者用来从事违法犯罪行为 xff0c 一切与作者无关 文章目录 前言一 信息收集二 ssh爆破尝试三 根据框架exp和cve拿shell四 对
  • 在 MacOS 系统的 /home 目录下创建文件夹的方法

    文章目录 前言修改 auto master加载 auto master创建自定义文件夹 前言 Rt xff0c 本文讲述如何在 Mac OS 系统中 xff0c 在 home目录下创建文件夹的方法 之所以会有本篇文章 xff0c 是因为在默
  • 在 MacOS 系统下创建 /home 目录的方法

    文章目录 前言SIP关闭SIP打开SIP查看 SIP 当前状态 创建 home 目录 前言 在 在 MacOS 系统的 home 目录下创建文件夹的方法 这篇文章中 xff0c 我们描述了如何在 home目录下创建文件夹的方法 xff0c
  • 详述 Mac GoLand 安装后打不开(闪退)的解决方法

    文章目录 现象描述解决方法Method 1Method 2 现象描述 安装了当前最新版 xff08 2021 2 3 xff09 的 GoLand xff0c 之前的版本是2019 2 5 xff0c 但比较诡异的是 xff1a 安装成功后
  • 使用 Golang 实现简易的令牌桶算法

    文章目录 简介实现轮子 简介 在网络中传输数据的时候时 xff0c 为了防止网络拥塞 xff0c 需限制流出网络的流量 xff0c 使流量以比较均匀的速度向外发送 令牌桶算法就实现了这个功能 xff0c 可控制发送到网络上数据的数目 xff
  • 详述 Git 的 rebase 命令使用方法

    在基于 Git 的开发过程中 xff0c 我们很容易遇到合并代码的情况 xff0c 例如我们从 master 分支拉取了一个 feature 分支 xff0c 当我们开发到一段时间之后 xff0c 可能需要将 master 的代码合并到我们
  • 使用 gomonkey 遇到非 debug 模式执行失败的问题及解决方法

    文章目录 问题描述解决方法 问题描述 基于 Golang 语言 xff0c 写单元测试 xff0c 使用gomonkey对于某个函数进行 Mock xff0c 遇到如下问题 xff1a 使用 正常模式 执行单元测试 xff0c Patch不
  • 使用 gomonkey Mock 函数及方法

    文章目录 前言函数方法参考 前言 在 Golang 语言中 xff0c 写单元测试的时候 xff0c 不可避免的会涉及到对其他函数及方法的 Mock xff0c 即在假设其他函数及方法响应预期结果的同时 xff0c 校验被测函数的响应是否符
  • 使用 gomonkey Mock 函数及方法时遇到 panic: permission denied 的问题及解决方法

    文章目录 问题描述解决方法 问题描述 基于 Golang 语言 xff0c 使用 gomonkey 来 mock 函数及方法 xff0c 在 Mac 环境执行的时候 xff0c 遇到如下错误 xff1a span class token b
  • 详述 TCP 的 TIME_WAIT 状态要维持 2MSL 的原因

    文章目录 前言正文 前言 本文主要分析为什么 TIME WAIT 状态的持续时间是 2MSL 而不是 1MSL xff0c 3MSL 或其它的时长 xff0c 而不会详细描述为什么需要 TIME WAIT 状态 阅读本文需要的预备知识 xf
  • Golang调用Python

    阅读原文请点击 摘要 xff1a Python是时髦的机器学习御用开发语言 xff0c Golang是大红大紫的新时代后端开发语言 Python很适合让搞算法的写写模型 xff0c 而Golang很适合提供API服务 xff0c 两位同志都
  • 4-Tr0ll-1百个靶机渗透(精写-思路为主)

    文章目录 目录 文章目录 前言 一 信息收集 二 提权 1 提权方法1 2 提权方法2 3 提权方法3 4 提权方法4 5 root免密登录的方法 总结 前言 思路清晰 xff1a 1 信息收集 xff0c 寻找内网靶机 xff0c 得到可
  • flutter引入libraries问题 The name ‘LinearGradient‘ is defined in the libraries ‘xxx‘ and ‘xxx‘

    flutter 开发中遇到如下问题 xff1a The name span class token string 39 LinearGradient 39 span is defined span class token keyword i

随机推荐