mybatis——分页插件PageHelper的使用

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

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_龙  阅读(598)  评论(0)    收藏  举报
编辑推荐:
· 当加密ID需要变成Guid:为什么我选择了AES-CBC而非GCM?
· 基于 epoll 的协程调度器——零基础深入浅出 C++20 协程
· 下划线字段在golang结构体中的应用
· SQL Server也能玩正则表达式?
· CUDA 编程初探
阅读排行:
· 家里有密码锁的注意了,这真不是 BUG,是 feature。
· C#实现屏幕墙:同时监控多个电脑桌面(支持Windows、信创Linux、银河麒麟、统信UOS)
· 直击痛点的开源项目「GitHub 热点速览」
· C# 13 与 .NET 9 跨平台开发实战(第一章:开发环境搭建与.NET概述-上篇)
· 我的AI自学路线,可能对你有用
目录
点击右上角即可分享
微信分享提示