Page和Pageable

  • 前言
  • 一、Pageable概述
  • 二、Pageable对象的获取
  • 三、Page的使用

前言

在项目中,分页查询数据是不可缺少的一部分,下面简单了解一下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();      // 获取记录的集合列表
}

分页工具--Page和Pageable相关推荐

  1. Feign使用JPA分页类Page和Pageable抛出序列化异常

    一.异常如下 feign.AsyncResponseHandler.decode(AsyncResponseHandler.java:119) Type definition error: [simp ...

  2. pageable设置size_分页工具一Pageable与Page

    import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Page; 1.Page ...

  3. 使用Spring JPA中Page、Pageable接口和Sort类完成分页排序

    显示时,有三个参数,前两个必填,第几页,一页多少个size,第三个参数默认可以不填. 但是发现这个方法已经过时了,通过查看它的源码发现,新方法为静态方法PageRequest of(page,size ...

  4. Java Web的分页工具类

    最近写一个java web项目,以前分页的工具类,都是基础架构的人写好了的.也没有去细看,现在遇到这个状况. 就整理一下思路,自己写了一个分页的工具类.写的不好之处,还望斧正. 下面是我的代码: Pa ...

  5. 使用PageInfo分页工具类

    使用分页工具PageInfo得到分页结果 使用SpringBoot查表的时候,可能会返回多个结果,前端展示需要进行分页,所以需要后端返回分页的结果.本文只展示PageInfo的使用方法,不对源代码进行 ...

  6. 分页工具类——PageInfo

    使用方式 前端需要提交参数当前页数currentPage,后台从数据库中查询出数据并将数据封装到PageInfo类中,把封装好的pageInfo对象传递给前端并解析. //根据查询结果返回list集合 ...

  7. page分页php,Page分页函数

    提供一款实例的分类函数,有需要的朋友可以参考一下.<?php教程 // page分页函数 $page = $_get["page"]; function page($rows ...

  8. java ajax翻页_分页 工具类 前后台代码 Java JavaScript (ajax) 实现 讲解

    [博客园cnblogs笔者m-yb原创, 转载请加本文博客链接,笔者github: https://github.com/mayangbo666,公众号aandb7,QQ群927113708] htt ...

  9. java分页的工具类,java分页工具类

    PageBean-分页 package com.soyea.util; import java.io.Serializable; import java.util.List; /** * 分页工具类 ...

最新文章

  1. javaweb学习总结(三十)——EL函数库
  2. Python 懂车帝全车系销量排行榜
  3. Java 并发编程—核心理论
  4. mooc作业怎么上传附件_怎么以最低价格入门hifi音响?
  5. JNA参数传递问题,Java数组
  6. intel 指令集_苹果首款ARM Mac来了,浅谈ARM和Intel处理器
  7. java表示学生信息的类Student,并输出相关信息
  8. 迅为IMX6Q PLUS开发板烧写Android6.0系统方法
  9. 《微观经济学》第一章经济学十大原理
  10. 学了这么久的高并发编程,连Java中的并发原子类都不知道?这也太Low了吧
  11. fdfs和springboot的整合
  12. 云盘行业的“冰与火”
  13. FIRST集合基本构造
  14. Select之多表查询
  15. Java使用itextpdf生成PDF文件,用浏览器下载
  16. 计算机组成原理数据流通图作用,计算机组成原理-第14-15讲(第5章).ppt
  17. SpingMVC项目Servlet[springmvc]的Servlet.init()引发异常
  18. 计算机三级网络技术第八章(第一轮)
  19. 基于JAVA+SpringMVC+Mybatis+Vue+MYSQL的医药销售管理系统
  20. python实现通过URL下载图片到本地服务器

热门文章

  1. Flutter Android app 修改启动背景颜色和logo——筑梦之路
  2. windows下安装mpi4py库
  3. 【转】国内可用免费语料库
  4. 类的那些事(包含智能提示小图标,与对象的关系等)
  5. Servlet的应用(三):文件下载
  6. 用户管理(详解与步骤)
  7. 3D LUT 相关文章收集
  8. 四叶草启动linux黑屏,U盘clover引导原版10.9黑屏,是啰嗦模式之后白屏闪一下熄灭...
  9. 泰山OFFICE技术讲座:着重号引起的行高变化
  10. PHP常用正则表达式