关于JPA使用Page和pageable实现分页查询数据库的理解
首先JPA规定了可以通过传入pageable对象来查询分页数据,返回类型为Page<T>Page<T>带有附加信息的Slice,例如结果的总数。需要一个Pageable方法参数。它官网的原话是Page<T>A page is a sublist of a list of objects.我的理解就是相当于一个list容器,用来存储JavaBean它继承了这些父接
首先JPA规定了可以通过传入pageable对象来查询分页数据,返回类型为Page<T>
Page<T>带有附加信息的Slice,例如结果的总数。需要一个Pageable方法参数。
它官网的原话是
Page<T> | A page is a sublist of a list of objects. |
我的理解就是相当于一个list容器,用来存储JavaBean
它继承了这些父接口
Iterable<T>, Slice<T>, Streamable<T>, Supplier<Stream<T>>
其中最重要的就是 Slice<T>这个接口,他有下面这样一个接口函数
List<T> | getContent() Returns the page content as List. |
这意味着你可以通过getcontent的方法来获得Page对象中对应的list,也就是可以像对普通list一样来操作他。当然还可以调用slice的许多函数,例如getnumber()获取当前页等等。
Page对象讲完了。
那么这个pageable对象呢?
Pageable | Abstract interface for pagination information. |
也就是说它是对分页属性的描述。
它有一些继承这个接口的Javabean,其中最重要的就是AbstractPageRequest,这是一个抽象javabean继承
public abstract class AbstractPageRequest extends Object implements Pageable, Serializable
Abstract Java Bean implementation of Pageable
.
而AbstractPageRequest的构造器:
AbstractPageRequest(int page, int size)
Creates a new AbstractPageRequest.
这意味着你可以通过指定page(当前页码),size(分页大小)来控制Pageable的属性。所以当你在spring或者springboot的前端想要传递分页信息的时候,你可以传递page,size的值,spring会自动帮你封装成pageable对象想后端传递。
更多推荐
所有评论(0)