spring boot 整合JPA


git地址
https://github.com/a18792721831/studySpringCloud.git
JPA 全称为JAVA Persistence API,它是一个数据持久化的类和方法的集合。JPA的目标是制定一个由很多数据库供应商实现的API,开发人员可以通过编码实现该API。目前,在Java项目开发中提到JPA一般是指用Hibernate 的实现,因为在Java的ORM框架中,只有 Hibernate实现得最好。

1. 创建gradle项目

创建一个新的gradle项目,选择依赖即可
在这里插入图片描述

2. 配置数据源

在工程的配置文件 application.yml文件中加上相应的配置,需要配置两个选项,DataSource数据源的配置和JPA的配置。其中,数据源的配置包括连接oracle的驱动类(例如com.oracle.jdbc.Driver)、oracle 数据库的地址 Url、oracle数据库的用户名username 和密码 password,JPA 的配置包括hibernate. ddl-auto 配置,配置为create时,程序启动时会在oracle数据库创建表:配置为 update时,在程序启动时不会在oracle数据库中建表:jpa.show.sql配置为在通过JPA 操作数据库时是否显示操作的SQL语句。配置代码如下:

在这里插入图片描述
不要担心,当依赖下载完,在配置文件中写配置是有提示的(自动补全)

3. 实体类

通过@Entity 注解表明该类是一个实体类,它和数据库的表名相对应;@Id注解表明该变
量对应于数据库中的Id,@GeneratedValue 注解配置. Id 字段为自增长;@Column 表明该变量对应于数据库表中的字段,unique=true 表明该变量对应于数据库表中的字段为唯一约束。

在这里插入图片描述

4. DAO

数据访问层DAO,通过编写一个UserDao类,该类继承 JpaRepository的接口,继承之
后就能对数据库进行读写操作,包含了基本的单表查询的方法,非常方便。在UserDao类写一个findByUsername的方法,传入参数username,JPA已经实现了根据某个字段去查找的方法所以该方法可以根据username字段从数据库中获取User的数据,不需要做额外的编码。代码如下:
在这里插入图片描述

5. service接口

service 接口定义提供哪些服务
在这里插入图片描述
ps:service接口本身不会注入spring容器,而是将service的实现以service 接口的名字注入spring容器

6. 逻辑删除

为了实现逻辑删除,需要有一个字段来标记记录是否有效。
在这里插入图片描述
创建枚举,有name和value属性,使用lombok注解生成get方法,然后实现from方法,根据vale获取枚举,外层使用optional进行处理空指针异常。
然后实现转换类
在这里插入图片描述
接着在属性中指定使用哪个转换类
在这里插入图片描述

7. serviceimpl

在这里插入图片描述

8. 实现扩展jpa查询

实现根据名字和状态进行查询,jpa中没有已经实现的,只能自己实现
在这里插入图片描述
然后就可以使用了
在这里插入图片描述

9. controller

在这里插入图片描述

10. 测试类

10.1 dao

在这里插入图片描述
运行
在这里插入图片描述
验证
在这里插入图片描述

10.2 service

在这里插入图片描述
测试结果
在这里插入图片描述
验证
在这里插入图片描述
这两条是新生成的,不是dao测试生成的,其值不同

10.3 controller

在这里插入图片描述
其id是在service中新增的
测试结果
在这里插入图片描述
每次测试完成会将数据删除
在这里插入图片描述

10.4 真实验证

首先手动往数据库表中增加一条记录
在这里插入图片描述
启动
在这里插入图片描述
然后在浏览器验证查询的controller
在这里插入图片描述

发布了182 篇原创文章 · 获赞 88 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/a18792721831/article/details/104380311