在Spring Boot中使用分页查询主要依赖了org.springframework.data.domain.*包下面的及格分页类的功能。使用分页查询常见有两种方式,一种是直接在程序中写死分页的参数(页数,每页大小等),需要依赖@PageableDefault注解。该注解指明了分页参数的默认值。另一种则是,可以通过URL等传入的信息进行分页信息的设置。

在常用的项目中,分页信息肯定是可以传入的,因此,只讨论如何根据传入的分页信息来实现分页查询。

1. Repository层加入分页支持

依然以配置了JPA操作的Spring Boot项目为例,要实现分页,需要在原有的架构上进行一定的改造。

首先就是在DAO层本身要支持分页参数。由于Spring中jpa的简化性,只需要添加如下类似的声明,即表示可以通过DAO层支持分页访问数据库了。

Page findAll(Pageable pageable);

2. 服务层提供对该接口的访问

做一个简单的封装即可,例如:

/**根据传入的分页参数,查询指定分页内的用户列表*/

public Page getAllSysUserInfoByPageable(Pageable pageable){

return sysUserInfoRepository.findAll(pageable);

}

3. Controller层创建分页对象来访问

底层的分页支持都已经提供好了,只需要在Controller层根据用户传入的参数来创建一个分页请求对象,就可以实现分页查询了。

第一步: 设置分页后的结果排序方案对象。

第二步: 根据排序方案对象和传入的参数实例化一个Pageable对象,用于分页的大小、页面数和排序方案。

第三步: 使用该分页对象

一个简单的示例如下:

/**实现分页查询的方法*/

@GetMapping("/page/{pageId}/size/{sizeId}")

public List getAllSysUserInfoListByPage(@PathVariable("pageId") int pageId, @PathVariable("sizeId") int size) {

Sort sort = new Sort(Sort.Direction.ASC, "userId");

Pageable pageable = new PageRequest(pageId, size, sort);

Page pageContent = sysUserInfoService.getAllSysUserInfoByPageable(pageable);

return pageContent.getContent();

}

Pageable是一个接口,用于接收分页请求(PageRequet)对象。

分页参数pageId是默认从 0 开始计数的。

springboot 分页查询参数_10. Spring Boot 中的分页查询相关推荐

  1. springboot拦截html页面元素,Spring Boot 中如何使用拦截器(十五)

    关于拦截器,大家一定都不陌生,spring boot 中是如何使用拦截器的呢?今天就举个例子,来给大家说明一下,废话不多说,开始撸代码!!! 1.创建一个新的spring boot项目,并引入相应的j ...

  2. springboot mysql事物_在Spring Boot中使用数据库事务

    关于数据库访问还有一个核心操作那就是事务的处理了,前面两篇博客小伙伴们已经见识到Spring Boot带给我们的巨大便利了,其实不用猜,我们也知道Spring Boot在数据库事务处理问题上也给我们带 ...

  3. boot spring 接口接收数据_在 Spring Boot 中使用 Dataway 配置数据查询接口

    Dataway介绍 Dataway 是基于 DataQL 服务聚合能力,为应用提供的一个接口配置工具.使得使用者无需开发任何代码就配置一个满足需求的接口. 整个接口配置.测试.冒烟.发布.一站式都通过 ...

  4. 在controller中调用指定参数给指定表单_第005课:Spring Boot 中MVC支持

    Spring Boot 的 MVC 支持主要介绍实际项目中最常用的几个注解,包括 @RestController. @RequestMapping.@PathVariable.@RequestPara ...

  5. springboot(三):Spring boot中Redis的使用

    转自www.ityouknow.com spring boot对常用的数据库支持外,对nosql 数据库也进行了封装自动化. redis介绍 Redis是目前业界使用最广泛的内存数据存储.相比memc ...

  6. Spring Boot中使用模板引擎参数化传参数

    目录 理论 代码及演示 理论 在导航页里面,当点击某个栏目的时候,就得被激活,在Spring Boot中,一般把导航页做成片段的形式,这个片段是可以根据参数进行激活某一个栏目,如下的演示所示,通过三元 ...

  7. SpringBoot精通系列-Spring Boot中如何配置Https

    导语    Https作为一个比较安全的协议,现在已经越来越普及了,特别是在完成小程序或者是公众号开发的时候,https基本上都是刚需了.但是一个HTTPS的证书是比较费钱的事情,个人开发者可以通过云 ...

  8. springboot怎么返回404_Spring Boot2 系列教程(十三)Spring Boot 中的全局异常处理

    在 Spring Boot 项目中 ,异常统一处理,可以使用 Spring 中 @ControllerAdvice 来统一处理,也可以自己来定义异常处理方案.Spring Boot 中,对异常的处理有 ...

  9. SpringBoot - Spring Boot 中的配置体系Profile全面解读

    文章目录 Pre Spring Boot 中的配置体系 配置文件与 Profile 主 application.properties 中指定激活的Profile Profile 配置信息只保存在一个文 ...

最新文章

  1. 使用 HTML5 时如何改进移动 Web 应用开发
  2. 简议使用业务模型驱动进行软件的设计
  3. maven java jar_在maven中引入本地jar包的方法
  4. python3安装步骤mac-Mac安装Python3
  5. ORACLE表空间管理维护
  6. 从已有安装包(vendor)恢复 composer.json
  7. VTK:BiDimensionalWidget二维小部件用法实战
  8. FileZilla搭建FTP服务器图解教程
  9. Servlet 中的out.print()与out.writer()的区别
  10. python解zuobiaoxi方程_从马尔可夫链到蒙特卡洛-Metropolis方法(Python)
  11. 思科常用配置实例的常用操作项
  12. 基于SSM的旅游管理系统
  13. PS如何压缩图片而不失真
  14. mac宽带连接找不到pppoe服务器,macbookAIR 使用以太网转接头连接宽带… - Apple 社区...
  15. java 象限分析_四象限分析法
  16. python解常微分方程组
  17. 魔方二代 php代码还原
  18. 计算机四级 信息安全工程师——操作系统题库
  19. AnnotationConfigApplicationContext 报错 has not been refreshed yet
  20. go-cqhttp发送本地图片

热门文章

  1. cf1132E. Knapsack(搜索)
  2. 分布式监控系统开发【day37】:需求讨论(一)
  3. 使用Ajax解析数据遇到的问题
  4. Android 保持Service不被Kill掉的方法--双Service守护 Android实现双进程守护
  5. Day03——类、值和对象
  6. 配置FCKeditor_2.6.3+fckeditor-java-2.4
  7. XML数据岛(XML Data Island)(只适用于ie)
  8. vue使用webPack打包发布后页面显示空白
  9. 使用redis做为MySQL的缓存
  10. Layui --- [Mar]给渲染后的表格加CSS样式