JPA中的Page与Pageable

引用连接:https://blog.csdn.net/u011781521/article/details/74539330

Page是Spring Data提供的一个接口,该接口表示一部分数据的集合以及其相关的下一部分数据、数据总数等相关信息,通过该接口,我们可以得到数据的总体信息(数据总数、总页数...)以及当前数据的信息(当前数据的集合、当前页数等)


Pageable 是Spring Data库中定义的一个接口,该接口是所有分页相关信息的一个抽象,通过该接口,我们可以得到和分页相关所有信息(例如pageNumber、pageSize等),这样,Jpa就能够通过pageable参数来得到一个带分页信息的Sql语句。


Pageable定义了很多方法,但其核心的信息只有两个:


一是分页的信息(page、size)
二是排序的信息。Spring Data Jpa提供了PageRequest的具体实现



Page  接口如下:

[html]  view plain  copy
  1. public interface Page<T> extends Iterable<T> {  
  2.   
  3.     int getNumber();            //当前第几页   返回当前页的数目。总是非负的  
  4.   
  5.     int getSize();              //返回当前页面的大小。  
  6.   
  7.     int getTotalPages();         //返回分页总数。  
  8.   
  9.     int getNumberOfElements();   //返回当前页上的元素数。  
  10.   
  11.     long getTotalElements();    //返回元素总数。  
  12.   
  13.     boolean hasPreviousPage();  //返回如果有上一页。  
  14.   
  15.     boolean isFirstPage();      //返回当前页是否为第一页。  
  16.   
  17.     boolean hasNextPage();      //返回如果有下一页。  
  18.   
  19.     boolean isLastPage();       //返回当前页是否为最后一页。  
  20.   
  21.     Iterator<T> iterator();  
  22.   
  23.     List<T> getContent();     //将所有数据返回为List  
  24.   
  25.     boolean hasContent();     //返回数据是否有内容。  
  26.   
  27.     Sort getSort();          //返回页的排序参数。  
  28. }  


Pageable 接口:

[html]  view plain  copy
  1. /**  
  2.  * 分页信息抽象接口  
  3.  *   
  4.  * @author Oliver Gierke  
  5.  */  
  6. public interface Pageable {  
  7.   
  8.     /**  
  9.      * 返回要返回的页面.  
  10.      *   
  11.      * @return the page to be returned.  
  12.      */  
  13.     int getPageNumber();  
  14.   
  15.     /**  
  16.      * 返回要返回的项目的数量。  
  17.      *   
  18.      * @return the number of items of that page  
  19.      */  
  20.     int getPageSize();  
  21.   
  22.     /**  
  23.      * 根据底层页面和页面大小返回偏移量。  
  24.      *   
  25.      * @return the offset to be taken  
  26.      */  
  27.     int getOffset();  
  28.   
  29.     /**  
  30.      * 返回排序参数。  
  31.      *   
  32.      * @return  
  33.      */  
  34.     Sort getSort();  
  35. }  

你可能感兴趣的:(java框架)