mybatis——分页插件PageHelper的使用
项目开发中涉及列表查询时,经常会需要对查询结果进行分页处理;常用的一个插件——PageHelper,是国内非常优秀的一款开源的mybatis分页插件,它支持基本主流与常用的数据库,一致支持mysql、oracle、mariaDB、DB2、SQLite、Hsqldb等。OK接下来就一起来了解了解PageHelper分页插件!
PageHelper使用#
我们直接进入PageHelper使用实战
Maven添加依赖Maven添加依赖#
首先,集成引入分页插件,推荐使用 Maven 方式。
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.2</version>
</dependency>
配置pagehelper#
我的项目是springboot项目,直接在application配置文件中添加如下配置:
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实现类代码编写#
@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了
作者: super_龙
出处:https://www.cnblogs.com/javaTank/p/14652225.html
本站使用「CC BY 4.0」创作共享协议,转载请在文章明显位置注明作者及出处。
【推荐】2025 HarmonyOS 鸿蒙创新赛正式启动,百万大奖等你挑战
【推荐】博客园的心动:当一群程序员决定开源共建一个真诚相亲平台
【推荐】开源 Linux 服务器运维管理面板 1Panel V2 版本正式发布
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个 java 空指针异常的解决过程
· 揭开 SQL Server 和 PostgreSQL 填充因子的神秘面纱
· 没有调度器的协程不是好协程,零基础深入浅出 C++20 协程
· 别做抢活的导演:代码中的抽象层次原则
· 从 Redis 客户端超时到 .NET 线程池挑战
· dotnetty 内存泄漏的BUG修复了
· 20250709 - GMX V1 攻击事件: 重入漏洞导致的总体仓位价值操纵
· Apipost 的AI功能真的还不错啊!建议后端开发和测试人员了解
· 面试官:如何实现大模型连续对话?
· MoneyPrinterTurbo – 免费开源的AI短视频生成工具