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)
首先先配置数据库
接着我们需要配置jpa的一些配置信息
2.2、实体类
其中
- @Entity 是一个必选的注解,声明这个类对应了一个数据库表。
- @Table(name = "user") 是一个可选的注解。声明了数据库实体对应的表信息。包括表名称、索引信息等。这里声明这个实体类对应的表名是 user。如果没有指定,则表名和实体的名称保持一致。
- @Id 注解声明了实体唯一标识对应的属性。
- @GeneratedValue是用来确定主键是否自增
- TABLE:使用一个特定的数据库表格来保存主键。
- SEQUENCE:根据底层数据库的序列来生成主键,条件是数据库支持序列。
- IDENTITY:主键由数据库自动生成(主要是自动增长型)
- AUTO:主键由程序控制
- @Column(length = 50) 用来声明实体属性的表字段的定义。默认的实体每个属性都对应了表的一个字段。字段的名称默认和属性名称保持一致(并不一定相等)。字段的类型根据实体属性类型自动推断。这里主要是声明了字符字段的长度。如果不这么声明,则系统会采用 255 作为该字段的长度
数据库中表的结构
2.3、Dao层
我们要继承JpaRepository<T, ID>其中的T为我们的实体类 ID为我们主键的类型
2.4、测试
我们可以测试一他自带的方法
删除
查询
3、扩展使用jpa
3.1、通过方法名字进行扩展查询
jpa还可以自定义方法可以通过方法名字进行判断
例如:通过姓名查找到用户的信息
也可以通过其他的属性进行查找需要将Name换成要查找的属性名
3.2、通过自己编写的sql语句进行查询
也可以在@Query 注解中增加一个 nativeQuery = true 的属性,就可以采用原生 SQL 语句的方式来编写查询。