Hibernate、JPA、Spring Data JPA,傻傻分不清
扫描二维码
随时随地手机看文章
国庆假期接近尾声,明天最后一天了,要开始收收心啦~今天讲讲一个初学者(或许一些老手)可能没去搞懂的几个概念: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 框架的差异,便于开发人员的使用。![Hibernate、JPA、Spring Data JPA,傻傻分不清](/images/21ic_nopic.gif)
Spring Data JPA:
虽然市面上很多 ORM 框架都实现了 JPA 规范,但它们基于 JPA 基础又做了一些扩展,这使得使用 JPA 的时候不能无缝切换底层的 ORM 框架。所以 Spring 又提出了 Spring Data JPA 。Spring Data JPA 符合 JPA 规范,但它是一个抽象层,上接 JPA 下接各大 ORM 框架,简化了持久层开发且屏蔽了各大 ORM 框架的差异,两个字,舒服。![Hibernate、JPA、Spring Data JPA,傻傻分不清](/images/21ic_nopic.gif)