SpringBoot整合JPA
2021-04-13 16:09 握瑾怀瑜 阅读(508) 评论(0) 编辑 收藏 举报1 JPA介绍
SpringBoot使用JPA(java Persistence API)资源库来实现对数据库的操作,使用Mysql也是如此。
简单的说,JPA就是为POJO(Plain Ordinary Java Object)提供持久化的标准规范,将java的普通对象通过对象关系映射持久化到数据库中。
2 实体建模
注解@Entity表示是实体类(必须)
注解@Table 指定关联的数据库的表名(必须), name=表名, Indexes是声明表里的索引, columnList是索引的列, 同时声明此索引列是否唯一, 默认false
注解@Id (必须)定义一条记录的唯一标识,并结合注解@GeneratedValue将其设置为自动生成。
通过实体类的定义,实现了使用java的普通对象与数据库表建立映射关系(ORM),接下来使用JPA来实现持久化。
3 实体持久化
这是一个dao层的接口,并继承JPA资源库JpaRepository接口,使用注解@Repository将这个接口也定义为一个资源库,使他能被其他程序引用,并为其他程序提供存取数据库的功能。
这样就实现了存取数据库的功能了。现在可以对数据库进行增删改查。
或许你还有疑问,我们定义的接口并没有声明一个方法,也没有对接口有任何实现的代码,甚至连一条sql查询语句都没有写,这怎么可能?
是的JPA就是这么简单。我们来看看JpaRepository的继承关系,就一目了然。
JpaRepository继承于PagingAndSortingRepository,它提供了分页和排序功能。
PagingAndSortingRepository继承于CrudRepository,它提供了简单的增删改查功能。
因为定义的接口继承于Repository,所以它传递性的继承了上面所有接口,并拥有这些接口的所有方法。
4 测试
目录结构
dao层代码
service层 和 service实现类代码
controller层代码
jmeter调用controller层的save,保存一条数据到数据库中,此时数据库中是没有建表的。
a)启动服务
数据库中刚刚建好的表
b) 用jmeter调用save
控制台日志(Jpa本质上是调用的Hibernate)
数据库数据(JPA方式已经将数据保存到数据库)
5 总结
1:使用JPA架构 不需要创建数据库表,服务会根据实体类的定义自动建表。 2:使用JPA结构,不需要写复杂的sql代码,底层调用了Hibernate.只需要继承一个JpaRepository接口即可。 3:使用JPA结构俩大核心 a) 主要是实体类的定义,注解的使用, b)以及dao层几层JpaRepository接口
加油的人生不解释
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架