1、简介

Spring Data JPA介绍

  可以理解为JPA规范的再次封装抽象,底层还是使用了Hibernate的JPA技术实现,引用JPQL(Java Persistence Query Language)查询语言,属于Spring整个生态体系的一部分。随着Spring Boot和Spring Cloud在市场上的流行,Spring Data JPA也逐渐进入大家的视野,它们组成有机的整体,使用起来比较方便,加快了开发的效率,使开发者不需要关心和配置更多的东西,完全可以沉浸在Spring的完整生态标准实现下。JPA上手简单,开发效率高,对对象的支持比较好,又有很大的灵活性,市场的认可度越来越高。

  JPA是Java Persistence API的简称,中文名为Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。

2、jpa的使用

2.1、导入依赖

首先我们要导入依赖



接着我们要在application.properties中编写配置文件(或者在application.yml)

首先先配置数据库

spring boot jpa代码生成器 生成实体工具 springboot jpa详解_springboot

 接着我们需要配置jpa的一些配置信息

spring boot jpa代码生成器 生成实体工具 springboot jpa详解_数据库_02

2.2、实体类

spring boot jpa代码生成器 生成实体工具 springboot jpa详解_数据库_03

 其中

  • @Entity 是一个必选的注解,声明这个类对应了一个数据库表。
  • @Table(name = "user") 是一个可选的注解。声明了数据库实体对应的表信息。包括表名称、索引信息等。这里声明这个实体类对应的表名是 user。如果没有指定,则表名和实体的名称保持一致。
  • @Id 注解声明了实体唯一标识对应的属性。
  • @GeneratedValue是用来确定主键是否自增
  • TABLE:使用一个特定的数据库表格来保存主键。
  • SEQUENCE:根据底层数据库的序列来生成主键,条件是数据库支持序列。
  • IDENTITY:主键由数据库自动生成(主要是自动增长型)
  • AUTO:主键由程序控制
  • @Column(length = 50) 用来声明实体属性的表字段的定义。默认的实体每个属性都对应了表的一个字段。字段的名称默认和属性名称保持一致(并不一定相等)。字段的类型根据实体属性类型自动推断。这里主要是声明了字符字段的长度。如果不这么声明,则系统会采用 255 作为该字段的长度

数据库中表的结构

spring boot jpa代码生成器 生成实体工具 springboot jpa详解_数据库_04

 

2.3、Dao层

spring boot jpa代码生成器 生成实体工具 springboot jpa详解_springboot_05

 我们要继承JpaRepository<T, ID>其中的T为我们的实体类 ID为我们主键的类型

2.4、测试

我们可以测试一他自带的方法

spring boot jpa代码生成器 生成实体工具 springboot jpa详解_数据库_06

 删除

spring boot jpa代码生成器 生成实体工具 springboot jpa详解_数据库_07

 查询

spring boot jpa代码生成器 生成实体工具 springboot jpa详解_主键_08

3、扩展使用jpa 

3.1、通过方法名字进行扩展查询

jpa还可以自定义方法可以通过方法名字进行判断

例如:通过姓名查找到用户的信息

spring boot jpa代码生成器 生成实体工具 springboot jpa详解_字段_09

也可以通过其他的属性进行查找需要将Name换成要查找的属性名

3.2、通过自己编写的sql语句进行查询

spring boot jpa代码生成器 生成实体工具 springboot jpa详解_springboot_10

 也可以在@Query 注解中增加一个 nativeQuery = true 的属性,就可以采用原生 SQL 语句的方式来编写查询。