大家好,我是yes。
成都创新互联公司是一家专注于做网站、网站建设与策划设计,庆阳网站建设哪家好?成都创新互联公司做网站,专注于网站建设十余年,网设计领域的专业建站公司;建站业务涵盖:庆阳等地区。庆阳做网站价格咨询:028-86922220
国庆假期接近尾声,明天最后一天了,要开始收收心啦~
今天讲讲一个初学者(或许一些老手)可能没去搞懂的几个概念:Hibernate、JPA、Spring Data JPA 之间的关联。
嘿嘿,前段时间有位同学说去大厂面试被问了这个。
好了,话不多说,发车!
Hibernate 就不多介绍了, 一个 ORM 框架,它提供了 HQL 来屏蔽底层不同数据库厂商 SQL 之间的差异,大大提升了程序的可移植性。
也提供了一套 Criteria API 来进行数据操作,使用这套 API 不需要关注底层 SQL 的实现,直接操作 API 即可。
JPA 是一个 Java 持久化规范,在 JDK 5 后提出的。
它的提出主要是为了整合市面上已有的 ORM 框架,如 Hibernate、EclipseLink 等。
官方觉得:你们搞框架可以,但是得按照我 Java 定的规矩来。
只有统一了接口,我们程序员使用的时候才会便捷。但它只是一个规范,具体实现还是由这些 ORM 框架来完成。
所以 JPA 的提出是为了屏蔽市面上各大 ORM 框架的差异,便于开发人员的使用。
虽然市面上很多 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。内容未经允许不得转载,或转载时需注明来源: 创新互联