分页工具--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();		// 获取记录的集合列表
}
  • 7
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值