1. PageHelper实现分页查询

Day08

1.1 PH作用:

PageHelper框架可以实现我们提供页码和每页条数,
自动实现分页效果,收集分页信息

1.2 PH原理:

PageHelper的分页原理就是在程序运行时,
在sql语句尾部添加limit关键字,
并按照分页信息向limit后追加分页数据

1.3 PH依赖:

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

2. PageHelper的基本使用

  • OrderMapper接口中添加查询订单的方法
注意这个方法并不需要任何分页的参数或返回值,sql也不需要编写limit
  • 业务逻辑层中由PageHelper框架处理的
// 分页查询所有订单的方法
// pageNum是要查询的页码
// pageSize是每页的条数
public PageInfo<Order> getAllOrdersByPage(Integer pageNum,Integer pageSize){ // 利用PageHelper框架的功能,指定分页的查询的页码和每页条数
// pageNum为1时,就是查询第一页,和SpringData的分页不同(SpringData分页0表示第一页)
PageHelper.startPage(pageNum,pageSize);
// 调用查询所有订单的方法
// 因为上面设置了分页查询的条件,所以下面的查询就会自动在sql语句后添加limit关键字
// 查询出的list就是需要查询的页码的数据
List<Order> list=orderMapper.findAllOrders();
// 我们完成了分页数据的查询,但是当前方法要求返回分页信息对象PageInfo
// PageInfo中可以包含分页数据和各种分页信息,这些信息都是自定计算出来的
// 要想获得这个对象,可以在执行分页查询后实例化PageInfo对象,所有分页信息会自动生成
return new PageInfo<>(list);
}

2.2 PageInfo类中的分页信息解释

//当前页
private int pageNum;
//每页的数量
private int pageSize;
//当前页的行数量
private int size;
//当前页面第一个元素在数据库中的行号
private int startRow;
//当前页面最后一个元素在数据库中的行号
private int endRow;
//总页数
private int pages;
//前一页页号
private int prePage;
//下一页页号
private int nextPage;
//是否为第一页
private boolean isFirstPage;
//是否为最后一页
private boolean isLastPage;
//是否有前一页
private boolean hasPreviousPage;
//是否有下一页
private boolean hasNextPage;
//导航条中页码个数
private int navigatePages;
//所有导航条中显示的页号
private int[] navigatepageNums;
//导航条上的第一页页号
private int navigateFirstPage;
//导航条上的最后一页号
private int navigateLastPage;

最新文章

  1. 【读书笔记】iOS-ARC-环境下如何查看引用计数的变化
  2. 启动mysql错误ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
  3. c/s 自动升级(WebService)
  4. 车销送货上门专用无线开单器-自带PDA无线移动开单系统 与云服务器连接
  5. Scala-Trait:混入与多态
  6. 将真彩色转换成增强色的方法(即RGB32位或RGB24位颜色转换成RGB16位颜色的函数)
  7. JS中的函数,Array对象,for-in语句,with语句,自定义对象,Prototype
  8. Oracle数据库之三
  9. yii2 rbac 设计
  10. 《Genesis-3D开源游戏引擎完整实例教程-跑酷游戏篇01:道路的自动生成》
  11. C#中如何按字节数截取字符串?
  12. 基于阿里云server搭建SVNserver
  13. 深入A标签点击触发事件而不跳转的详解
  14. Mars之android的Handler(2)
  15. 【Android小应用】强迫症头像生成器
  16. nuget挂了吗?
  17. jakarta-taglibs-standard-1.1.0查找下载
  18. raise missingsectionheadererror:file containe no section headers问题解决
  19. js css样式操作代码(批量操作)
  20. Java并发之FairSync和NonfairSync

热门文章

  1. DBSCAN算法概念【聚类】
  2. php 迭代器的学习
  3. 超详细的Linux 用户与用户组知识
  4. mySql in 语句查询优化
  5. flask配置文件、路由设置、模板语法、请求与响应、session使用、闪现功能(flash)
  6. 2020级cpp上机考试题解#B卷
  7. js算法-埃筛法
  8. B - A Simple Task
  9. WC2021 题目清单
  10. CF335E Counting Skyscrapers 题解