JPA、Hibernate、Spring data jpa之间的关系,终于明白了

原创
2018/06/12 09:54
阅读数 44.8W

什么么是JPA?

全称Java Persistence API,可以通过注解或者XML描述【对象-关系表】之间的映射关系,并将实体对象持久化到数据库中。

为我们提供了:

1)ORM映射元数据:JPA支持XML和注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中;

如:@Entity、@Table、@Column、@Transient等注解。

 2)JPA 的API:用来操作实体对象,执行CRUD操作,框架在后台替我们完成所有的事情,开发者从繁琐的JDBC和SQL代码中解脱出来。

如:entityManager.merge(T t);

 3)JPQL查询语言:通过面向对象而非面向数据库的查询语言查询数据,避免程序的SQL语句紧密耦合。

如:from Student s where s.name = ?

但是:

JPA仅仅是一种规范,也就是说JPA仅仅定义了一些接口,而接口是需要实现才能工作的。所以底层需要某种实现,而Hibernate就是实现了JPA接口的ORM框架。

也就是说:

JPA是一套ORM规范,Hibernate实现了JPA规范!如图:

什么是spring data jpa?

spirng data jpa是spring提供的一套简化JPA开发的框架,按照约定好的【方法命名规则】写dao层接口,就可以在不写接口实现的情况下,实现对数据库的访问和操作。同时提供了很多除了CRUD之外的功能,如分页、排序、复杂查询等等。

Spring Data JPA 可以理解为 JPA 规范的再次封装抽象,底层还是使用了 Hibernate 的 JPA 技术实现。如图:

接口约定命名规则:

实例:

springboot集成spring data jpa只需两步:

第一步:导入maven坐标

第二步:yml配置文件中配置jpa信息

--完--

展开阅读全文
打赏
13
95 收藏
分享
加载中
应该是spring data jpa 在jpa规范之上再封装的, 图2依赖错了
2020/05/09 10:50
回复
举报
最上层是越抽象的,所以应该是正确的。
2020/06/19 14:08
回复
举报
业务的sql难的用这个更难实现,简单的懒得写sql的用mybatisplus,总感觉这个技术目前地位很尴尬
2019/11/05 15:26
回复
举报
我要 这jpa有何用~
2018/08/17 19:24
回复
举报
小型简单项目可以用,省事!
2018/06/26 10:05
回复
举报
基本没人用,出问题了不好改,写个sql是开发最基本的技能!这就不必省事了!
2018/06/26 10:03
回复
举报

引用来自“陶永强”的评论

引用来自“whaon”的评论

现在没人用了

胡扯
你用的开心就好
2018/06/22 12:33
回复
举报

引用来自“whaon”的评论

现在没人用了

胡扯
2018/06/22 06:37
回复
举报
kut

引用来自“whaon”的评论

现在没人用了
一般的CRUD项目用起来真的很好用,谁说没人用了。
2018/06/21 22:50
回复
举报
现在没人用了
2018/06/21 21:16
回复
举报
这种科普文不错
2018/06/21 19:48
回复
举报
更多评论
打赏
20 评论
95 收藏
13
分享
返回顶部
顶部