PageHelper


前言

  • 内容搜集于网上多篇优秀文章,结合自己理解,写下该文

一、介绍

  • 官网地址:https://pagehelper.github.io/
  • pagehelper是MyBatis提供的分页插件,目前支持Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL 六种数据库

二、依赖

<!-- springboot-pagehelper -->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.3.1</version>
</dependency>

三、配置

#pagehelper
pagehelper:
  # 分页插件会自动检测当前的数据库链接,自动选择合适的分页方式,也可以手动指定
  #helper-dialect: mysql
  # 支持通过Mapper接口参数来传递分页参数,默认false
  support-methods-arguments: true
  params: count=countSql

四、使用

1、Mapper接口方式的调用

  1. 在自己的查询sql前设置分页参数,开启分页
  2. PageHelper会拦截开启分页后的第一条查询语句,根据分页参数自动添加 limit、count
PageHelper.startPage(int pageNum, int pageSize, String orderBy);
PageHelper.startPage(int pageNum, int pageSize);

PageHelper.offsetPage(int offset, int limit);
PageHelper.offsetPage(int offset, int limit, boolean count);
  1. 执行自己的查询语句
List<User> list=userMapper.select();
  1. 获取分页结果
PageInfo<User> page=new PageInfo<>(list);
TableDataInfo(page.getList(),page.getTotal());
//经过pagehelper拦截返回的list已不是一个普通的集合,而是Page<E>

List<T> page.getList()//数据集合
long page.getTotal();//总数
int page.getPageNum();//页数
int page.getPageSize()//每页的记录数
page.getStartRow()
page.getEndRow()
page.getPages()
page.getFirstPage()
page.getLastPage()
page.isFirstPage()
page.isLastPage()
page.isHasPreviousPage()
page.isHasNextPage()

//如果后面还有DB操作、转换操作时,要先把total保存下来(否则total会不准确,=list.size())
//forEach不影响
long total=page.getTotal();
List<UserVO> voList=list.stream().map(...).collect(Collectors.toList());
TableDataInfo(voList,total);
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kimi-001

只想在有限的时间分享更多的知识

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值