MyBatis分页插件PageHelper的使用

8 篇文章 0 订阅

PageHelper简介

PageHelper是Github上开源的MyBatis分页插件,使用起来非常的简单,方便,并且支持任何复杂的单表、多表分页。
Github网址:https://github.com/pagehelper/Mybatis-PageHelper/blob/master/README_zh.md

使用maven引入相关的jar

org.mybatis.spring.boot mybatis-spring-boot-starter 1.3.2 com.github.pagehelper pagehelper-spring-boot-starter 1.2.10
<dependency>
	<groupId>org.mybatis.spring.boot</groupId> 
	<artifactId>mybatis-spring-boot-starter</artifactId> 
	<version>1.3.2</version> 
</dependency>

<dependency>
	<groupId>com.github.pagehelper</groupId> 
	<artifactId>pagehelper-spring-boot-starter</artifactId> 
	<version>1.2.10</version> 
</dependency>

配置PageHelper方言

在项目配置文件yml中配置:

pagehelper:
  	helperDialect: oracle
  	reasonable: true
  	supportMethodsArguments: true
  	params: count=countSql

分析PageInfo类种主要属性的用法

PageInfo是pagehelper给我们封装的一个类,里面有一些我们做分页表常用的属性。

pageNum:当前为第几页

pageSize:每页的数据行数

startRow:当前页数据从第几条开始

endRow:当前页数据从第几条结束

pages:总页数

prePage:上一页页数

nextPage:下一页页数

hasPreviousPage:是否有上一页

hasNextPage:是否有下一页

navigatepageNums:所有页码的数组

编写业务逻辑代码

使用pagehelper非常的简单,只需要在你想要分页的查询逻辑前后添加以下代码即可,代码:

PageHelper.startPage(pageNum, pageSize);
List<Entity> list = entityMapper.getList();   //查询
PageInfo<Entity> page = new PageInfo<Entity>(list );

pageNum:页数(第几页)

pageSize:每页的数据行数

PageHelper进阶使用

上述方法仅限于单条查询使用,如果是多个查询结果,只会对startPage下的第一个查询结果进行需要对多条查询结果合并且分页需要以下操作即可,代码:

 List<Entity> list = entityMapper.getList();   //查询
 List<Entity> newList = new ArrayList<>();    //新建空list
 
 if (pageSize*pageNumber > list .size()){
	 newList = list .subList((pageNumber -1)*10,pageSize);
 }else{
     newList = list .subList((pageNumber-1)*10,pageSize*pageNumber);
 }
 
 PageInfo<XclMaterialKey> page = new PageInfo<XclMaterialKey>(newList );
 page .setTotal(list .size());
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值