继承PagingAndSortingRepository

我们可以看到,BlogRepository定义了这样一个方法:Page<Blog> findByDeletedFalse(Pageable pageable);,我们主要关注它的参数以及返回值。

  • Pageable 是Spring Data库中定义的一个接口,该接口是所有分页相关信息的一个抽象,通过该接口,我们可以得到和分页相关所有信息(例如pageNumberpageSize等),这样,Jpa就能够通过pageable参数来得到一个带分页信息的Sql语句。
  • Page类也是Spring Data提供的一个接口,该接口表示一部分数据的集合以及其相关的下一部分数据、数据总数等相关信息,通过该接口,我们可以得到数据的总体信息(数据总数、总页数...)以及当前数据的信息(当前数据的集合、当前页数等)

Spring Data Jpa除了会通过命名规范帮助我们扩展Sql语句外,还会帮助我们处理类型为Pageable的参数,将pageable参数转换成为sql'语句中的条件,同时,还会帮助我们处理类型为Page的返回值,当发现返回值类型为Page,Spring Data Jpa将会把数据的整体信息、当前数据的信息,分页的信息都放入到返回值中。这样,我们就能够方便的进行个性化的分页查询。

分页:

package org.springdata.repository;import org.springdata.domain.Employee;
import org.springframework.data.repository.PagingAndSortingRepository;/***/
public interface EmployeePadingAndSortingResponstory extends PagingAndSortingRepository<Employee,Integer> {
}

编写测试类

  

package org.springdata.crudservice;import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springdata.domain.Employee;
import org.springdata.repository.EmployeePadingAndSortingResponstory; import org.springdata.service.CrudEmployeeService; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import java.util.List; /** */ public class PagingAndSortingRespositoryTest { private ApplicationContext ctx = null; private EmployeePadingAndSortingResponstory employeePadingAndSortingResponstory = null; @Before public void setup(){ ctx = new ClassPathXmlApplicationContext("beans_news.xml"); employeePadingAndSortingResponstory = ctx.getBean(EmployeePadingAndSortingResponstory.class); System.out.println("setup"); } @After public void tearDown(){ ctx = null; System.out.println("tearDown"); } @Test public void testPage(){ //index 1 从0开始 不是从1开始的 Pageable page = new PageRequest(0,10); Page<Employee> employeeList = employeePadingAndSortingResponstory.findAll(page); System.out.println("查询总页数:"+employeeList.getTotalPages()); System.out.println("查询总记录数:"+employeeList.getTotalElements()); System.out.println("查询当前第几页:"+employeeList.getNumber()+1); System.out.println("查询当前页面的集合:"+employeeList.getContent()); System.out.println("查询当前页面的记录数:"+employeeList.getNumberOfElements()); } }

查询结果   咱们先在Employee 实体类 重写下toString()方法  才能打印集合数据

  

排序:

  基于上面的查询集合  我们新建一个测试方法

@Testpublic void testPageAndSord(){//根据id 进行降序Sort.Order order =  new Sort.Order(Sort.Direction.DESC,"id");Sort sort = new Sort(order);//index 1 从0开始 不是从1开始的Pageable page = new PageRequest(0,10,sort);Page<Employee> employeeList = employeePadingAndSortingResponstory.findAll(page); System.out.println("查询总页数:"+employeeList.getTotalPages()); System.out.println("查询总记录数:"+employeeList.getTotalElements()); System.out.println("查询当前第几页:"+employeeList.getNumber()+1); System.out.println("查询当前页面的集合:"+employeeList.getContent()); System.out.println("查询当前页面的记录数:"+employeeList.getNumberOfElements()); }

我们可以看到  最大id 排前面了

转载于:https://www.cnblogs.com/fzng/p/7256896.html

Spring Data 分页和排序 PagingAndSortingRepository的使用(九)相关推荐

  1. Spring Data JPA

    1.    概述 Spring JPA通过为用户统一创建和销毁EntityManager,进行事务管理,简化JPA的配置等使用户的开发更加简便. Spring Data JPA是在Spring JPA ...

  2. Spring Data JPA简单学习

    从一个简单的 JPA 示例开始 本文主要讲述 Spring Data JPA,但是为了不至于给 JPA 和 Spring 的初学者造成较大的学习曲线,我们首先从 JPA 开始,简单介绍一个 JPA 示 ...

  3. Spring Data JPA使用

    2019独角兽企业重金招聘Python工程师标准>>> 前言 自 JPA 伴随 Java EE 5 发布以来,受到了各大厂商及开源社区的追捧,各种商用的和开源的 JPA 框架如雨后春 ...

  4. 使用Spring Data JPA进行分页和排序

    通过代码示例学习使用Spring Data JPA进行分页和排序 . 了解如何使用Springs PagingAndSortingRepository接口获取分页和排序结果. 1概述 在处理大量数据时 ...

  5. Spring Data JDBC自动生成的增删改查CRUD分页、排序SQL语句非常简洁没有多余的SQL

    通过在application.properties文件中设置记录SQL日志 logging.level.org.springframework.jdbc.core.JdbcTemplate=DEBUG ...

  6. 003_Spring Data JPA分页和排序查询

    1. 创建一个名为spring-data-jpa-paging-and-sorting的Java项目, 同时添加相关jar包, 并添加JUnit能力. 2. 查看PagingAndSortingRep ...

  7. java easyui条件组合查询_EasyUi+Spring Data 实现按条件分页查询

    Spring data 介绍 Spring data 出现目的 为了简化.统一 持久层 各种实现技术 API ,所以 spring data 提供一套标准 API 和 不同持久层整合技术实现 . 自己 ...

  8. Spring Data JPA分页查询

    使用Spring Data JPA的朋友,在实际工作中经常需要用到分页查询.下面介绍一个简单的分页查询的例子:查询学生信息,每页10行数据,并按成绩排序.先看数据表: 实现:repo需要继承Pagin ...

  9. jooq 事务_将jOOQ与Spring结合使用:排序和分页

    jooq 事务 JOOQ是一个库,可以帮助我们控制SQL. 它可以从我们的数据库生成代码,并允许我们使用其流畅的API来构建类型安全的数据库查询. 本教程前面的部分向我们介绍了如何配置应用程序的应用程 ...

最新文章

  1. C语言中字符型在计算机中的存储
  2. 《SAS编程与数据挖掘商业案例》学习笔记之十七
  3. 2013\Province_Java_A\1.世纪末的星期
  4. 戴尔发布面向制造、生命科学和研究的高性能计算系统
  5. sql server 2008 年累计数_MySQL高阶问题:server层和存储引擎层是如何交互的?
  6. 【技巧】搜狗输入法特殊技巧
  7. integer expression expected或者unary operator expected
  8. android studio 继承关系 快捷键,Android Studio快捷键
  9. 【JDBC】JDBC的使用(数据库的增删改查询)
  10. STM32入门开发: 采用IIC硬件时序读写AT24C08(EEPROM)
  11. [TravelNotes] CTSC 2017 APIO 2017 THUPC 2017 游记
  12. 终极方案 | 梯子(V*n)导致的远程计算机或设备将不接受连接
  13. SQL人民币小写金额转大写
  14. wxpython中表格顶角怎么设置_wxpython编程之 grid(数据表格) | 学步园
  15. 2D激光雷达和视觉相结合的SLAM概述
  16. 计算机局域网切换,怎么进入别人电脑--局域网【详解】
  17. Maven打包(瘦身打包部署),不包含第三方依赖jar包
  18. 模拟电子技术实验作业(9)
  19. linux 挂载 SD 卡
  20. CoD系列游戏资源提取工具

热门文章

  1. 云服务器变成多个挂机宝销售,云服务器变成挂机宝
  2. mysql sql len_MySQL的查询计划中ken_len的值计算方法
  3. python拷贝是什么知识点_地址对象python 列表拷贝知识点 地址对象
  4. Java Web中的中文编码问题分析
  5. 从70元到60亿,可以进来看看这篇文章
  6. 实训课俄罗斯方块之二授课计划总体规划
  7. html插音乐怎么设置样式,是否可以设置html5音频标签的样式?
  8. linux下samba病毒,Samba 用户模拟漏洞(CVE-2016-2125)
  9. expect批量执行命令
  10. 《剑指offer》整数中1出现的次数(从1到n整数中1出现的次数)