我 | 在这里
⭐ 全栈开发攻城狮、全网10W+粉丝、2022博客之星后端领域Top1、专家博主。
🎓擅长 指导毕设 | 论文指导 | 系统开发 | 毕业答辩 | 系统讲解等。已指导60+位同学顺利毕业
✈️个人公众号:热爱技术的小郑。回复 Java全套视频教程 或 前端全套视频教程 即可获取 300G+ 教程资料,以及大量毕设项目源码。
🐬专注干货知识分享、项目实战案例开发分享
🚪 传送门:Github毕设源码仓库
前言
Pageable
和 PageRequest
是 Spring Data JPA
中用来实现分页查询的接口和类。常见使用说明:
Pageable pageable = PageRequest.of(page, size);
1. Pageable 接口
Pageable
是一个接口,代表分页信息。它包含了分页所需的页码和每页大小等信息。
Spring Data JPA
的许多查询方法(例如 findAll(Pageable pageable)
)都会接受一个 Pageable
对象,用于返回一个分页结果。
2. PageRequest 类
PageRequest
是 Pageable
接口的一个实现类。通过 PageRequest
,你可以创建一个包含 页码 和 页大小 的 Pageable
对象。
PageRequest.of(page, size)
是一个静态工厂方法,用于创建一个 PageRequest
对象。
参数解释
page
: 表示你想要获取的页码(从 0 开始)。例如,page = 0 代表第 1 页,page = 1 代表第 2 页,以此类推。size
: 表示每一页的记录数量。比如,如果 size = 10,则每页会返回最多 10 条记录。
3. 示例
假设你想查询数据库中的数据,并且希望以分页的形式,每页返回 20 条记录,并从第 2 页开始查询:
Pageable pageable = PageRequest.of(1, 20);
- 这里的 page 为 1,表示获取的是第二页的内容。
- size 为 20,表示每页包含 20 条记录。
4.实际应用
这个 Pageable
对象通常会作为方法参数传递给 Spring Data JPA
的仓库(Repository)
接口中的查询方法,从而返回一个 Page
对象,Page
对象不仅包含当前页的数据,还包含有关分页的信息(如总页数、当前页、总记录数等)。
例如:
Page<MyEntity> resultPage = myEntityRepository.findAll(pageable);
这里的 resultPage
就包含了查询到的分页数据。