您现在的位置是:亿华云 > 人工智能
Hibernate、JPA、Spring Data JPA,傻傻分不清
亿华云2025-10-03 20:33:43【人工智能】7人已围观
简介大家好,我是yes。国庆假期接近尾声,明天最后一天了,要开始收收心啦~今天讲讲一个初学者(或许一些老手)可能没去搞懂的几个概念:Hibernate、JPA、Spring Data JPA 之间的关联。
大家好,傻傻分我是不清yes。
国庆假期接近尾声,傻傻分明天最后一天了,不清要开始收收心啦~
今天讲讲一个初学者(或许一些老手)可能没去搞懂的傻傻分几个概念: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 怎么变了。源码库
很赞哦!(725)
相关文章
- 前面这两个步骤都是在本机完成的。到这里还没有涉及真正的域名解析服务器,如果在本机中仍然无法完成域名的解析,就会真正请求域名服务器来解析这个域名了。
- .co域名是什么意思?.co域名有哪些优势?
- 单字母域名怎么样?单字母域名有多少?
- 有哪些cc域名交易受到米农青睐?
- 只要我们做的是从目前的市场情况选择域名,从简单易记,从个性特征上,我们就可以找到一个好域名进行注册。域名注册进行域名记录和解析以及绑定网站后,客户可以通过URL登录您的网站。
- EasyC++,静态持续变量
- 使用Redis实现一个轻量级的搜索引擎,牛逼啊!
- 「Strve.Js」可以将字符串转换为视图的JS库
- 这个不用多说,不同平台的注册价格不同,且不同平台对域名释放交易的把控与曝光不同,当然价格相对便宜且平台渠道广操作便利的平台最好。
- 个性域名怎么区分?如何购买个性域名?