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了
水滴石穿