分页工具--Page和Pageable
Page和Pageable前言一、Pageable概述二、Pageable对象的获取三、Page的使用前言在项目中,分页查询数据是不可缺少的一部分,下面简单了解一下Spring Data中提供的分页接口Pageable和Page一、Pageable概述Pageable是Spring Data库中的一个接口,主要用于构造分页查询语句。Pageable接口包含了分页的相关信息,使用getPageNum
·
Page和Pageable
前言
在项目中,分页查询数据是不可缺少的一部分,下面简单了解一下Spring Data中提供的分页接口Pageable和Page
一、Pageable概述
Pageable是Spring Data库中的一个接口,主要用于构造分页查询语句。
Pageable接口包含了分页的相关信息,使用getPageNumber()和getPageSize(),可以获取当前是第几页和每页的的数据量大小。
在查询语句中加入Pageable对象作为参数,JPA就能够通过该Pageable对象的信息,分析生成一个带分页查询的SQL语句。
二、Pageable对象的获取
使用PageRequest类中的静态方法of来获取Pageable对象。(PageRequest类继承了AbstractPageRequest类,而AbstractPageRequest类有实现了Pageable接口)
示例代码:
// 不带排序的Pagable对象
public void getLatestPagingUser(Integer pageNum, Integer size) {
Pageable pageable = PageRequest.of(page, size);
}
// 带有排序的Pageable对象,根据实体中的creatTime属性进行倒序排序
public void getLatestPagingUser(Integer pageNum, Integer size) {
Pageable page = PageRequest.of(pageNum, size, Sort.by("createTime").descending());
}
三、Page的使用
Page也是Spring Data库中的一个接口,主要用于存储JPA查询数据库的结果集。
当使用Pageable对象作为参数进行查询的时候,JPA返回的是一个Page对象
示例代码:
public Page<User> getLatestPagingUser(Integer pageNum, Integer size) {
Pageable page = PageRequest.of(pageNum, size, Sort.by("createTime").descending());
// userRepository是UserRepository接口的一个对象,UserRepository继承了JpaRepository接口
return userRepository.findAll(page);
}
Page接口中有许多的方法可以获取,查询的结果信息
以下是比较常用的方法:
public void test(Page<T> pageT){
int total = pageT.getTotalElements(); // 获取记录的总条数
int count = pageT.getSize(); // 获取每页的记录条数
int page = pageT.getNumber(); // 获取当前是第几页
int totalPage = pageT.getTotalPages(); // 获取总页数
List<T> list = pageT.getContent(); // 获取记录的集合列表
}
更多推荐
已为社区贡献4条内容
所有评论(0)