Hibernate、JPA、SpringDataJPA,傻傻分不清

 大家好,我是yes。

成都创新互联公司是一家专注于做网站、网站建设与策划设计,庆阳网站建设哪家好?成都创新互联公司做网站,专注于网站建设十余年,网设计领域的专业建站公司;建站业务涵盖:庆阳等地区。庆阳做网站价格咨询:028-86922220

国庆假期接近尾声,明天最后一天了,要开始收收心啦~

今天讲讲一个初学者(或许一些老手)可能没去搞懂的几个概念:Hibernate、JPA、Spring Data JPA 之间的关联。

嘿嘿,前段时间有位同学说去大厂面试被问了这个。

好了,话不多说,发车!

Hibernate

Hibernate 就不多介绍了, 一个 ORM 框架,它提供了 HQL 来屏蔽底层不同数据库厂商 SQL 之间的差异,大大提升了程序的可移植性。

也提供了一套 Criteria API 来进行数据操作,使用这套 API 不需要关注底层 SQL 的实现,直接操作 API 即可。

JPA

JPA 是一个 Java 持久化规范,在 JDK 5 后提出的。

它的提出主要是为了整合市面上已有的 ORM 框架,如 Hibernate、EclipseLink 等。

官方觉得:你们搞框架可以,但是得按照我 Java 定的规矩来。

只有统一了接口,我们程序员使用的时候才会便捷。但它只是一个规范,具体实现还是由这些 ORM 框架来完成。

所以 JPA 的提出是为了屏蔽市面上各大 ORM 框架的差异,便于开发人员的使用。

Spring Data JPA:

虽然市面上很多 ORM 框架都实现了 JPA 规范,但它们基于 JPA 基础又做了一些扩展,这使得使用 JPA 的时候不能无缝切换底层的 ORM 框架。

所以 Spring 又提出了 Spring Data JPA 。

Spring Data JPA 符合 JPA 规范,但它是一个抽象层,上接 JPA 下接各大 ORM 框架,简化了持久层开发且屏蔽了各大 ORM 框架的差异,两个字,舒服。

总结

JPA 是规范,统一了规范才便于使用。

Hibernate 是 ORM 框架,它是 JPA 这个规范的一个实现。

Spring Data JPA 则是 Spring 提出的,因为不同的 ORM 框架虽说有 JPA 规范约束,但是还是有不同的扩展,不易无缝替换,所以基于 JPA 添加了一个抽象层,来屏蔽不同 ORM 框架的差距。

这其实类似于 Spring 自己定义一个标准来统一 Spring 对持久层的支持,这样对于我们这些在 Spring 使用 ORM 框架的开发来说,不需要管底层 ORM 怎么变了。

文章标题:Hibernate、JPA、SpringDataJPA,傻傻分不清
URL标题:http://www.shufengxianlan.com/qtweb/news1/236301.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联