import org.springframework.data.domain.Pageable;

import org.springframework.data.domain.Page;

1.Pageable概述

Page findByAge(int age, Pageable pageable);

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

2.Pageable实现:PageRequest

静态方法获取对象

static PageRequestof(int page, int size)与static PageRequest of(int page, int size, Sort sort)

3.直接获取Pageable对象

我们只需要在方法的参数中直接定义一个pageable类型的参数,当Spring发现这个参数时,Spring会自动的根据request的参数来组装该pageable对象

Spring支持的request参数如下:

page,第几页,从0开始,默认为第0页

size,每一页的大小,默认为20

sort,排序相关的信息,例如sort=firstname&sort=lastname,desc表示在按firstname正序排列基础上按lastname倒序排列

@RequestMapping("list")

public Page getEntryByPageable(@PageableDefault(value = 15, sort = { "id" }, direction = Sort.Direction.DESC)

Pageable pageable) {

return dao.findAll(pageable);

}

四.Pageable接口

public interface Pageable {

//返回要返回的页面.

int getPageNumber();

// 返回要返回的项目的数量。

int getPageSize();

//根据底层页面和页面大小返回偏移量。

int getOffset();

//返回排序参数。

Sort getSort();

}

五.Page接口

Page findByAge(int age, Pageable pageable);

用于储存查询的结果集

public interface Page extends Iterable {

int getNumber();//当前第几页,总是非负的

int getSize();//@常用:返回当前页面的大小。

int getTotalPages(); //@常用:返回分页总数。

int getNumberOfElements(); //返回当前页上的元素数。

long getTotalElements(); //@常用:返回元素总数。

boolean hasPreviousPage(); //返回如果有上一页。

boolean isFirstPage(); //返回当前页是否为第一页。

boolean hasNextPage(); //返回如果有下一页。

boolean isLastPage(); //返回当前页是否为最后一页。

Iterator iterator();

List getContent(); //@常用:将所有数据返回为List

boolean hasContent(); //返回数据是否有内容。

Sort getSort(); //返回页的排序参数。

}

六.Page接口实现PageImpl

构造函数PageImpl(List content)与PageImpl(List content, Pageable pageable, long total)

成员方法

ListgetContent()

Pageable getPageable()

longgetTotalElements()

intgetTotalPages()

SortgetSort()

intgetSize()

七.使用

@GetMapping("/showMarkerByPage/{page}")

public Result showMarkerController(@PathVariable("page") int page){

PageRequest pageRequest = PageRequest.of(page, 5);

Page markerPage = markerService.findMarker(pageRequest);

for (int i = 0; i < markerPage.getContent().size(); i++) {

System.out.println(markerPage.getContent().get(i));

System.out.println(markerPage.getTotalElements());

}

if (markerPage.getContent()!=null) {

return ResultUtil.success(markerPage.getContent(), "/showMarker");

}else {

return ResultUtil.error(1, "查询失败", "/showMarker");

}

}

pageable设置size_分页工具一Pageable与Page相关推荐

  1. pageable设置size_总结SpringBoot使用Pageable实现分页源码

    之前写过一篇mybatis-plus的文章,但是有朋友说技术太过简单了,想让我写一下分页什么的技术,这里想跟大家解释一下:因为刚开始在这种平台上写文章,确实是写的慢,并且,有些技术我自己也没怎么使用过 ...

  2. pageable设置size_使用Pageable 分页

    1. service层 封装 packagecom.example.demo.service;importjava.util.List;importorg.springframework.data.d ...

  3. pageable设置size_SpringBoot分页Pageable 自定义配置最大size

    起因 在工作中,涉及到导出的功能,由于导出和搜索的结果是相同的,所以导出和搜索是同一接口.但由于搜索的分页是每页10条,而导出却是没有条数限制的,所以引出下面的问题 controller方法如下: @ ...

  4. pageable设置size_SpringdDataJpa如何创建一个不分页,但是排序的pageable

    2020-07-16 更新一波 今天看到有个小哥在这个里面评论说他也报错了,报了UnsupportedOperationException 这跟之前题主说的报错也是差不多,就是我的方案总之会报错 但是 ...

  5. 使用Spring的Pageable来实现分页查询

    1.导入包: import org.springframework.data.domain.Pageable; 2.测试类: @Testpublic void whenQuerySeccess() t ...

  6. c oracle 分页工具类,Util工具类 跨Oracle、MySQL通用分页查询

    /**** 跨Oracle.MySQL通用分页查询*/public classPagingUtil { public static finalString MYSQL= "MYSQL&quo ...

  7. 服务器设置系统盘分页,服务器设置系统盘分页

    服务器设置系统盘分页 内容精选 换一换 本章节介绍磁盘的约束与限制. 安装完操作系统后的临时云服务器需要进行相关配置,并安装原生的XEN和KVM驱动,才能保证后续创建的云服务器正常使用.该任务指导用户 ...

  8. 分页工具类——PageInfo

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

  9. ImageView可直接调用的,根据URL设置图片的工具类

    ImageView 是Android编程中最常用的组件之一. 但是根据图片的URL设置图片却很麻烦.因为获取网络图片的操作必须在异步线程中进行,根据URL设置ImageView图片就可能需要进行线程间 ...

最新文章

  1. log4j.logger java_java – Log4JLogger的根本原因是找不到还是不可用?
  2. 迪普工业以太网交换机产品线
  3. 近期大热的AutoML领域,都有哪些值得读的论文?
  4. 乐器演奏_深度强化学习代理演奏的蛇
  5. 五、python模块以及包
  6. 关于Sql语句的心得体会
  7. java 加密 encrypt_JAVA Encrypter 加密算法
  8. Linux磁盘、内存、CPU、进程
  9. codeblocks和vscode编译时弹出不支持的16位程序解决方案
  10. 将指定用户下所有表的查询权限赋权给查询用户
  11. java 冒号转义_java – 使用Hibernate查询:冒号被视为参数/转义冒号
  12. 阿里云服务器:配置 Docker 的 镜像加速器
  13. 图像处理及深度学习开源数据集大全(四万字呕心沥血整理)
  14. Specification使用
  15. 【一】ArcGIS API for JavaScript 4.x之地图显示
  16. 香港理工大学计算机专业课程,香港理工大学计算机系包括哪些专业
  17. 天气很热,用Python告诉你奶茶哪家最好喝性价比最高?
  18. 为什么计算机连不上无线网络,为什么无线网络连接上却不能上网,教您电脑连上无线网却不能上网怎么解决...
  19. gateway资源详解
  20. 纪念周恩来诞辰124周年

热门文章

  1. blockly自定义中文出问题_Blockly教程 创建自定义块-Blockly 开发者工具
  2. 微信登录,qq登录,微博登录之 tp3.2
  3. feign和openfeign的区别
  4. 【20211206】【信号处理】对傅里叶变换的理解和一个小例子
  5. 不同域名(多域名)下共享登录状态
  6. kali linux重启网卡失败:Job for networking.service failed because the control process exited with error...
  7. 第4章 SQL SELECT 语句教程
  8. 郭晓:敏捷文化里更需要的是领导力
  9. 离散余弦变换和离散傅里叶变换
  10. 2017oracle官网下载旧版本JDK