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了
image

posted @ 2021-04-13 11:04  super_龙  阅读(548)  评论(0编辑  收藏  举报