Spring Boot 2系列教程7 - Spring Data JPA 配置

JPA是什么?

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

Spring Boot 2系列教程7 - Spring Data JPA 配置

使用JPA有什么优势?

JPA 是 JCP(Java Community Process,是一个开放的国际组织,主要由Java开发者以及被授权者组成,职能是发展和更新。) 组织发布的 Java EE 标准之一,因此任何声称符合 JPA 标准的框架都遵循同样的架构,提供相同的访问API,这保证了基于JPA开发的企业应用能够经过少量的修改就能够在不同的JPA框架下运行。

因为JPA是基于非侵入式的设计原则,因此可以很容易的和其他的框架或者容器集成。

基于JPA实现接口规范的最流行的框架之一就是Hibernate。

开始使用JPA

如果想使用JPA需要引用 spring-boot-starter-data-jpa。

引用该依赖后. 会自动加入相关依赖.

Spring Boot 2系列教程7 - Spring Data JPA 配置

主要是以下3个主要的依赖

Hibernate:最受欢迎的JPA实现之一。

Spring Data JPA:使实现基于JPA的操作更加容易。

Spring ORMs:Spring Framework的核心ORM支持。

从开始看到现在, 你已经发现,springboot 就是一个spring套装合集。而不是什么新出现的技术。最核心的东西还是使用, 现有的框架进行开发。

想要使用JPA。就需要引用spring-data-jpa。所以,也就是需要spring的基础框架。学习的方式就变成。用好spring-data-jpa就可以使用springboot。

加入依赖之后, 拷贝上面的项目文件, 进行构建. 效果如下图.

Spring Boot 2系列教程7 - Spring Data JPA 配置

配置文件.

配置application.properties

怎么知道配置都有什么呢? 我们根据springboot的规则,我们先找

Spring Boot 2系列教程7 - Spring Data JPA 配置

并找到jpa的配置。找到一个。

Spring Boot 2系列教程7 - Spring Data JPA 配置

并打开该文件。

Spring Boot 2系列教程7 - Spring Data JPA 配置

你会发现这里引用了一系列的配置信息. 这里我们需要注意的是@AutoConfigureAfter 意思是, 我们在这个应用自动配置之后,要应用该自动配置。

然后我们找到HibernateJpaAutoConfiguration

Spring Boot 2系列教程7 - Spring Data JPA 配置

根据框架的名称可以得知JpaProperties一定是一个配置文件。并且使用了@EnableConfigurationProperties。

Spring Boot 2系列教程7 - Spring Data JPA 配置

打开JPaProperties, 我们可以看到

Spring Boot 2系列教程7 - Spring Data JPA 配置

spring.jpa 就是我们需要在application.properties中进行配置项的前缀.

常用的功能有:

database 选择一个数据库类型.

database主要来自: org.springframework.orm.jpa.vendor.Database枚举对象.

Spring Boot 2系列教程7 - Spring Data JPA 配置

show-sql (showSql) 是否显示SQL的日志.

如果使用hibernate就需要使用HibernateProperties

Spring Boot 2系列教程7 - Spring Data JPA 配置

前缀就需要多加上一个hibernate变成 spring.jpa.hibernate

常用的配置有:

ddlAuto(ddl-auto): DDL模式。 这实际上是“hibernate.hbm2ddl.auto”属性的快捷方式。当使用嵌入式数据库并且未检测到任何模式管理器时,默认为“create-drop”。 否则,默认为“none”。

上面就是需要配置jpa的方法. 当然, 除了这些扩展配置, 还需要配置基础的datasource的配置. 在哪配置呢? 其实刚刚我们已经看到相关的配置了.

看下图:

Spring Boot 2系列教程7 - Spring Data JPA 配置

这里在又引用了另外的一个自动配置类. 他在:org.springframework.boot.autoconfigure.jdbc。

Spring Boot 2系列教程7 - Spring Data JPA 配置

这里就加载了DataSourceProperties的配置信息. spring.datasource

Spring Boot 2系列教程7 - Spring Data JPA 配置

并看到我们上节说到的jdbc的配置.

Spring Boot 2系列教程7 - Spring Data JPA 配置

看源代码的时候, 在不熟悉的时候, 需要把引用的都看一下, 都打开过个眼熟. 对全局有很好的理解效果.

编写配置信息, 这里使用了mysql进行做持久化的数据库层.

Spring Boot 2系列教程7 - Spring Data JPA 配置

spring.thymeleaf.cache=false
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost/test?useUnicode=yes&characterEncoding=UTF-8&serverTimezone=GMT
spring.datasource.username=root
spring.datasource.password=xymiao
spring.jpa.database = MYSQL
spring.jpa.show-sql = true

配置完成.

加入main函数, 启动项目 : com.jkyuntu.springboot2.JPASpringBootApplication

Spring Boot 2系列教程7 - Spring Data JPA 配置

正常情况下, 现在执行, 如果没有出现错误, 就说明你的基础环境就运行起来了. 但是为了测试是否真的运行成功, 需要继续完善代码.

加入对象实体类. User 使用注解@Entity

Spring Boot 2系列教程7 - Spring Data JPA 配置

有了实体类, 就可以配置dao.

Spring Boot 2系列教程7 - Spring Data JPA 配置

这里使用CrudRepository 的封装对象. 看下该接口的源码.

Spring Boot 2系列教程7 - Spring Data JPA 配置

T为实体类, ID为主键类型. 例如: String, Integer

加入service

Spring Boot 2系列教程7 - Spring Data JPA 配置

并实现该类:

Spring Boot 2系列教程7 - Spring Data JPA 配置

这里使用主键的方式进行查询. 然后在Controller里面写入测试代码. 这里在开发的时候, 会用到另外的测试方法, 后续会进行详细讲解.

Spring Boot 2系列教程7 - Spring Data JPA 配置

在页面中加入:

Spring Boot 2系列教程7 - Spring Data JPA 配置

运行项目. 查看效果.

Spring Boot 2系列教程7 - Spring Data JPA 配置

配置和简单的查询完成. 接下来会用一个案例首页轮播效果, 进行演示接下来的开发. 另外开一章了. 关注我. 了解更多.

如果有任何的问题, 或者遗漏, 请不吝指出. 一定改正. 共勉.

github地址送上:

https://github.com/xymiao/book-springboot2jingsui


分享到:


相關文章: