Spring Boot笔记-JPA分页(后端分页)
数据库内容如下:
使用Pageable即可。
Maven如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>JPAPageable</artifactId><version>1.0-SNAPSHOT</version><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.1.10.RELEASE</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.10</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><version>2.1.10.RELEASE</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.73</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId><version>2.1.10.RELEASE</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.37</version><scope>runtime</scope></dependency></dependencies></project>
ORM的对象是这样的TestDemo.java:
package cn.it1995.object;import javax.persistence.*;@Entity
@Table(name = "test_demo", schema = "TESTDB", catalog = "")
public class TestDemo {private long id;private String value1;private Integer value2;@Id@Column(name = "id")public long getId() {return id;}public void setId(long id) {this.id = id;}@Basic@Column(name = "value_1")public String getValue1() {return value1;}public void setValue1(String value1) {this.value1 = value1;}@Basic@Column(name = "value_2")public Integer getValue2() {return value2;}public void setValue2(Integer value2) {this.value2 = value2;}@Overridepublic boolean equals(Object o) {if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;TestDemo testDemo = (TestDemo) o;if (id != testDemo.id) return false;if (value1 != null ? !value1.equals(testDemo.value1) : testDemo.value1 != null) return false;if (value2 != null ? !value2.equals(testDemo.value2) : testDemo.value2 != null) return false;return true;}@Overridepublic int hashCode() {int result = (int) (id ^ (id >>> 32));result = 31 * result + (value1 != null ? value1.hashCode() : 0);result = 31 * result + (value2 != null ? value2.hashCode() : 0);return result;}
}
仓库如下:
TestDemoRepository.java
package cn.it1995.repository;import cn.it1995.object.TestDemo;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;@Repository
public interface TestDemoRepository extends JpaRepository<TestDemo, Long> {
}
service端如下:
TestDemoService.java
package cn.it1995.service;import cn.it1995.object.TestDemo;
import cn.it1995.repository.TestDemoRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;@Service
public class TestDemoService {@Autowiredprivate TestDemoRepository testDemoRepository;public Page<TestDemo> listAll(Integer pageNum){Pageable pageable = PageRequest.of(pageNum - 1, 10);Page<TestDemo> all = testDemoRepository.findAll(pageable);return all;}
}
关键的就是这个,分页我们需要的,一共多少条数据,当前是第几页:
这里可以看到,当前page为0,当前总数是37,这样就是后端分页了。将其返回值封装下,就可以给前端了。
Spring Boot笔记-JPA分页(后端分页)相关推荐
- Spring Boot笔记-JPA中自定义@Query分页查询
如下事例代码: @Repository public interface XXXXXRepository extends JpaRepository<XXXYYY, XXXYYYPK> { ...
- Spring Boot笔记-JPA自定义SQL语句参数为对象时如何操作
环境: SpringBoot v2.1.10.RELEASE 举个例子: @Modifying @Query(nativeQuery = true, value = "update XXX. ...
- Spring Boot笔记-解决前后端分离在开发时的跨域问题
这里可以用Nginx解决跨越问题,也可以用下面这种方式在开发时解决: @Configuration public class CorsConfig implements WebMvcConfigure ...
- Spring Boot基础学习笔记07:Spring Boot整合JPA
文章目录 零.学习目标 1.熟悉Spring Data JPA基本语法和使用 2.掌握Spring Boot与JPA的整合使用 一.Spring Data JPA概述 1.Spring Data JP ...
- Spring Boot Data JPA
Spring Data JPA简介 用来简化创建 JPA 数据访问层和跨存储的持久层功能. Spring Data JPA提供的接口 Repository:最顶层的接口,是一个空的接口,目的是为了统一 ...
- spring boot 与 iview 前后端分离架构之开发环境基于docker的部署的实现(三十六)
spring boot 与 iview 前后端分离架构之开发环境基于docker的后端的部署的实现(三十六) 公众号 基于docker的后端的部署 安装mysql数据库 创建数据库 安装redis 安 ...
- (五)Debian Linux中部署Spring Boot + Vue的前后端分离项目详细过程(arm64/aarch64架构下)
专题系列往期文章目录 (一)移动端安卓手机改造成linux服务器&Linux中安装软件踩坑历险记 (二)Debian Linux系统中安装oracle JDK1.8详细过程(arm64/aar ...
- spring boot 系列之四:spring boot 整合JPA
上一篇我们讲了spring boot 整合JdbcTemplate来进行数据的持久化, 这篇我们来说下怎么通过spring boot 整合JPA来实现数据的持久化. 一.代码实现 修改pom,引入依赖 ...
- Spring Boot集成JPA的Column注解命名字段无效的问题
偶然发现,Spring Boot集成jpa编写实体类的时候,默认使用的命名策略是下划线分隔的字段命名. Spring Boot版本:1.5.4.release 数据表: id int, userNam ...
最新文章
- 全面剖析linux【bind】服务お理论篇
- SQL Server中DateTime格式转换
- 斐波那契的数列的计算python-python斐波那契数列的计算方法
- mysql 查询排行_通过mysql查询排行榜
- 愚蠢的领导才会用程序员祭天!!
- 技术动态 | 67 亿美金搞个图,创建知识图谱的成本有多高你知道吗?
- 数据库笔记06:创建并管理数据表
- Html点击复制文本内容
- 阿里根据截图查到泄露者,这样的技术是如何做到的?
- linux用gzip文件,Linux中的Gzip命令
- php实现手机归属地的查询、,PHP之cURL实现手机号码归属地查询功能
- springboot中使用thymeleaf片段引入出现500错误(易错)
- vscode 自定义字体样式_vscode md样式自定义
- 使用高德地图API实现历史轨迹查询
- 如何以正确地姿势AK SQL查询50题(精华篇)
- Qt实现Linux下的硬盘空间监测和文件清理
- 基于Matlab的静电场仿真实验--求均匀带电球壳的电场
- 关于Caused by: com.alibaba.fastjson.JSONException: syntax error, expect }, actual ,
- 几种近距离的无线通信技术
- 学生-课程数据库建表代码(三张表:学生表 课程表 选课表SC)