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