Spring Boot 学习研究笔记(十四) SpringBoot Jpa 分页查询

简介: Spring Boot 学习研究笔记(十四) SpringBoot Jpa 分页查询

SpringBoot Jpa 分页查询

 

JpaRepository提供了如下表所述的内置查询:

方法 描述
List findAll() 返回所有实体
List findAll(Iterable ids) 返回指定id的所有实体
T getOne(ID id) 根据id返回对应的实体,如果未找到,则返回空
List findAll(Sort sort) 返回所有实体,按照指定顺序排序返回
Page findAll(Pageable pageable) 返回实体列表,实体的offset和limit通过pageable来指定

分页查询主要用到:

Page findAll(Pageable pageable) 接口

返回值Page类:

int getTotalPages()  获取总的页数


long getTotalElements()  返回总数


List getContent()   返回某页的结果集

参数 Pageable:

PageRequest是Pageable的实现类,可以通过以下工厂方法创建:

public static PageRequest of(int page,int size)
public static PageRequest of(int page,int size,Sort sort)
public static PageRequest of(int page,int size,Direction direction,String ... properties)
• page:从0开始,表示查询页
• size:每页查询个数
• sort:排序方式
• direction:排序方式,ASC、DESC
• properties:排序的字段
@RequestMapping(path = "/page") public List<Message> queryPage(@RequestBody Map<String, Object> params) {
Integer pageNo = Integer.valueOf((String) params.get("pageNo"));
Integer pageSize = Integer.valueOf((String)params.get("pageSize"));
/**
 * 添加排序Sort
 *      Sort.Direction.DESC表示降序
 *      Sort.Direction.ASC表示升序
 *      properties是指实体类的属性名(不是字段名)
 */
Sort sort = new Sort(Sort.Direction.ASC, "id");
/**
 *  分页参数Pageable
 *      参数1:查询的页码
 *      参数2:每页查询的条数
 *      参数3:查询结果的排序规则(可选
 */
Pageable pageable = PageRequest.of(pageNo, pageSize, sort);
/**
 *  分页查询
 *      参数1:查询条件Specification
 *      参数2:分页参数Pageable
 */
 Page<User>  page=userRepository.findAll(pageReques);
 List<User> users=page.getContent();
return users;
• }
相关文章
|
22天前
|
前端开发 Java 开发者
Spring生态学习路径与源码深度探讨
【11月更文挑战第13天】Spring框架作为Java企业级开发中的核心框架,其丰富的生态系统和强大的功能吸引了无数开发者的关注。学习Spring生态不仅仅是掌握Spring Framework本身,更需要深入理解其周边组件和工具,以及源码的底层实现逻辑。本文将从Spring生态的学习路径入手,详细探讨如何系统地学习Spring,并深入解析各个重点的底层实现逻辑。
45 9
|
1月前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
2月前
|
前端开发 Java 数据库
SpringBoot学习
【10月更文挑战第7天】Spring学习
36 9
|
2月前
|
XML Java 数据格式
Spring学习
【10月更文挑战第6天】Spring学习
22 1
|
2月前
|
Java 测试技术 开发者
springboot学习四:Spring Boot profile多环境配置、devtools热部署
这篇文章主要介绍了如何在Spring Boot中进行多环境配置以及如何整合DevTools实现热部署,以提高开发效率。
76 2
|
2月前
|
前端开发 Java 程序员
springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
这篇文章是关于如何在Spring Boot项目中集成Swagger2和Knife4j来生成和美化API接口文档的详细教程。
118 1
|
3月前
|
SQL 监控 druid
springboot-druid数据源的配置方式及配置后台监控-自定义和导入stater(推荐-简单方便使用)两种方式配置druid数据源
这篇文章介绍了如何在Spring Boot项目中配置和监控Druid数据源,包括自定义配置和使用Spring Boot Starter两种方法。
|
2月前
|
人工智能 自然语言处理 前端开发
SpringBoot + 通义千问 + 自定义React组件:支持EventStream数据解析的技术实践
【10月更文挑战第7天】在现代Web开发中,集成多种技术栈以实现复杂的功能需求已成为常态。本文将详细介绍如何使用SpringBoot作为后端框架,结合阿里巴巴的通义千问(一个强大的自然语言处理服务),并通过自定义React组件来支持服务器发送事件(SSE, Server-Sent Events)的EventStream数据解析。这一组合不仅能够实现高效的实时通信,还能利用AI技术提升用户体验。
187 2
|
21天前
|
缓存 IDE Java
SpringBoot入门(7)- 配置热部署devtools工具
SpringBoot入门(7)- 配置热部署devtools工具
33 2
 SpringBoot入门(7)- 配置热部署devtools工具
|
18天前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
31 2