比较相似术语之间的区别

之间的区别

首页 / 技术 / 它 / 应用程序 /JPA和Hibernate的区别

JPA和Hibernate的区别

2011年7月31日发布的Indika

JPA vs冬眠

几乎所有的企业应用程序都需要定期访问关系数据库。但早期技术(如JDBC)面临的一个问题是阻抗不匹配(面向对象和关系技术之间的差异)。这一问题的解决方案是通过引入一种称为持久性层的抽象层来实现的,该抽象层封装了来自业务逻辑的数据库访问。JPA (Java Persistence API)是一个专门用于管理Java应用程序中的关系数据(使用持久性层)的框架。在Java开发人员社区中使用了许多JPA的供应商实现。Hibernate是最流行的JPA实现(DataNucleus, EclipseLink和OpenJPA是其他一些)。最新的JPA版本(JPA 2.0)完全由Hibernate 3.5支持,它于2010年3月发布。

JPA是什么?

JPA是一个用于管理Java关系数据的框架。它可以与利用JSE (Java平台,标准版)或JEE (Java平台,企业版)的应用程序一起使用。它的当前版本是JPA 2.0,于2009年12月10日发布。JPA取代了EJB 2.0和EJB 1.1实体bean(它们被Java开发人员社区严重批评为重量级)。尽管实体bean(在EJB中)提供了持久性对象,但许多开发人员习惯于利用DAO(数据访问对象)和其他类似框架提供的相对轻量级的对象。因此,JPA被引入,并且它捕获了上面提到的框架的许多整洁的特性。

JPA中所描述的持久性涵盖了API(在javax.persistence中定义)、JPQL (Java平台,企业版)和关系对象所需的元数据。持久性实体的状态通常持久化到表中。实体的实例对应于关系数据库表的行。元数据用来表示实体之间的关系。注释或单独的XML描述符文件(与应用程序一起部署)用于在实体类中指定元数据。JPQL类似于SQL查询,用于查询存储的实体。

Hibernate是什么?

Hibernate是一个可以用于面向Java编程语言的对象-关系映射的框架。更具体地说,它是一个ORM(对象-关系映射)库,可以用来将对象-关系模型映射到传统的关系模型中。简单地说,它在关系数据库中的Java类和表之间创建映射,也在Java到SQL数据类型之间创建映射。Hibernate还可以通过生成SQL调用来进行数据查询和检索。因此,程序员可以从手工处理结果集和转换对象的过程中解脱出来。Hibernate是作为GNU许可下发布的免费开源框架发布的。JPA API的实现在Hibernate 3.2和更高版本中提供。Gavin King是Hibernate的创始人。

JPA和Hibernate之间的区别是什么?

JPA是一个在Java应用程序中管理关系数据的框架,而Hibernate是JPA的一个特定实现(所以理想情况下,JPA和Hibernate不能直接比较)。换句话说,Hibernate是实现JPA的最流行的框架之一。Hibernate通过Hibernate Annotation和EntityManager库实现JPA,这些库是在Hibernate Core库之上实现的。EntityManager和Annotations都遵循Hibernate的生命周期。最新的JPA版本(JPA 2.0)完全由Hibernate 3.5支持。JPA的好处是有一个标准化的接口,因此开发人员社区将比Hibernate更熟悉它。另一方面,原生Hibernate api可以被认为更强大,因为它的特性是JPA的超集。

相关文章:

EJB2和EJB3的区别 J2SE和J2EE的区别 Java5和Java6的区别 Adobe Illustrator和Adobe Photoshop的区别 裁剪和剔除的区别

了下:应用程序标记:注释,刀,DataNucleus,EclipseLink,EJB,EJB 1.1,EJB 2.0,EntityManager,加文王,Hibernate,Hibernate 3.2,Hibernate 3.5,阻抗失配,JPA的实现,Java应用程序,Java Persistence API,JDBC,JEE,JPA,JPA 2.0,JPQL,市场,元数据,OpenJPA,ORM库,持久层

关于作者:Indika

Indika,二元同步通信。工程师,MSECE计算机工程,博士。计算机科学,助理教授,在生物信息学、计算生物学和生物医学自然语言处理领域有研究兴趣。

评论

  1. HOUSSEM扎伊说

    2011年12月19日下午5点13分

    好stuf

    回复

留下一个回复取消回复

你的电邮地址将不会公布。必填项标注*

请求的文章

特色的帖子

冠状病毒与感冒症状的区别

冠状病毒与感冒症状的区别

冠状病毒和SARS的区别

冠状病毒和SARS的区别

冠状病毒和流感的区别

冠状病毒和流感的区别

冠状病毒和Covid - 19的区别

冠状病毒和Covid - 19的区别

你可能会喜欢

单元格和原始单元格的区别

单元格和原始单元格的区别

Gooch Crucible和Sintered Glass Crucible的区别

Gooch Crucible和Sintered Glass Crucible的区别

吸收成本法和作业成本法的区别

吸收成本法和作业成本法的区别

基因添加和基因替换的区别

基因添加和基因替换的区别

货币掉期与外汇掉期的区别

最新的文章

  • 电磁炉和普通炊具的区别是什么
  • 白癜风和银屑病的区别是什么
  • 松质骨和皮质骨的区别是什么
  • 电动灶具和电磁炉灶具有什么区别
  • 预防和治疗有什么区别
  • 《DSM IV》和《DSM V》自闭症的区别是什么
  • 首页
  • 职位空缺
  • 关于
  • 请求的文章
  • 联系我们

版权©2010 - 2018之间的区别。保留所有权利。使用条款和隐私政策:法律。