mybatis——分页插件PageHelper的使用

super_龙·2021-04-13 11:04·595 次阅读

mybatis——分页插件PageHelper的使用

项目开发中涉及列表查询时,经常会需要对查询结果进行分页处理;常用的一个插件——PageHelper,是国内非常优秀的一款开源的mybatis分页插件,它支持基本主流与常用的数据库,一致支持mysql、oracle、mariaDB、DB2、SQLite、Hsqldb等。OK接下来就一起来了解了解PageHelper分页插件!

PageHelper使用#

我们直接进入PageHelper使用实战

Maven添加依赖Maven添加依赖#

首先,集成引入分页插件,推荐使用 Maven 方式。

Copy
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.1.2</version> </dependency>

配置pagehelper#

我的项目是springboot项目,直接在application配置文件中添加如下配置:

Copy
pagehelper: #4.0.0以后版本可以不设置该参数,指明使用的是什么数据库 helperDialect: mysql #默认false;设置为true时,会将RowBounds第一个参数offset当成pageNum页码使用(和startPage中的pageNum效果一样) offsetAsPageNum: true #设置为true时,使用RowBounds分页会进行count查询 rowBoundsWithCount: true #设置为true时,如果pageSize=0或者RowBounds.limit = 0就会查询出全部的结果 pageSizeZero: true #3.3.0版本可用 - 分页参数合理化,默认false禁用 #启用合理化时,如果pageNum<1会查询第一页,如果pageNum>pages会查询最后一页 #禁用合理化时,如果pageNum<1或pageNum>pages会返回空数据 reasonable: false #支持通过Mapper接口参数来传递分页参数 supportMethodsArguments: true #3.5.0版本可用 - 为了支持startPage(Object params)方法 #增加了一个`params`参数来配置参数映射,用于从Map或ServletRequest中取值 #可以配置pageNum,pageSize,count,pageSizeZero,reasonable,orderBy,不配置映射的用默认值 #不理解该含义的前提下,不要随便复制该配置 params: count=countSql #always总是返回PageInfo类型,check检查返回类型是否为PageInfo,none返回Page returnPageInfo: check

Service实现类代码编写#

Copy
@Resource ITestDao testDao; @Override public PageInfo getList(ReqRBo listReq) { //PageInfo是一个分页Bean PageHelper.startPage(listReq.getPageNum(), listReq.getPageSize()); List<DetailsBo> datas = new ArrayList<>(); try { datas = testDao.getList(listReq); log.info("查询列表成功,数据结果:{}", JSONObject.toJSONString(datas)); } catch (SQLException throwables) { log.error("获取列表异常", throwables); } PageInfo pageInfo = new PageInfo(datas); return pageInfo; }

到这里,基本就OK了
image

posted @ 2021-04-13 11:04  super_龙  阅读(595)  评论(0)    收藏  举报
编辑推荐:
· 一个 java 空指针异常的解决过程
· 揭开 SQL Server 和 PostgreSQL 填充因子的神秘面纱
· 没有调度器的协程不是好协程,零基础深入浅出 C++20 协程
· 别做抢活的导演:代码中的抽象层次原则
· 从 Redis 客户端超时到 .NET 线程池挑战
阅读排行:
· dotnetty 内存泄漏的BUG修复了
· 20250709 - GMX V1 攻击事件: 重入漏洞导致的总体仓位价值操纵
· Apipost 的AI功能真的还不错啊!建议后端开发和测试人员了解
· 面试官:如何实现大模型连续对话?
· MoneyPrinterTurbo – 免费开源的AI短视频生成工具
点击右上角即可分享
微信分享提示
目录