zoukankan      html  css  js  c++  java
  • JPA与Hibernate的关系

    1.JPA

      JPA全称: Java Persistence API
      JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。
      JPA的出现?
      JPA的出现有两个原因:
      其一,简化现有Java EE和Java SE应用的对象持久化的开发工作;
      其二,Sun希望整合对ORM技术,实现持久化领域的统一。

    1.1.JPA提供的技术
      (1)ORM映射元数据
      JPA支持XML和JDK 5.0注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持
      久化到数据库表中;
      (2)JPA 的API
      用来操作实体对象,执行CRUD操作,框架在后台替我们完成所有的事情,开发者从繁琐的JDBC和SQL代码中解
      脱出来。
      (3)查询语言
      通过面向对象而非面向数据库的查询语言查询数据,避免程序的SQL语句紧密耦合。 

    2. Hibernate

      JPA是需要Provider来实现其功能的,Hibernate就是JPA Provider中很强的一个。从功能上来说,JPA现在就是Hibernate功能的一个子集。Hibernate 从3.2开始,就开始兼容JPA。Hibernate3.2获得了Sun TCK的 JPA(Java  Persistence API) 兼容认证。

      例如: 

      (1)实体对象的状态,在Hibernate有自由、持久、游离三种,JPA里有new,managed,detached,removed,而这些状态都是一一对应的。

      (2)flush方法,都是对应的,

      (3)Query query = manager.createQuery(sql),它在Hibernate里写法上是session,而在JPA中变成了  manager

    3.  JPA和Hibernate之间的关系,可以简单的理解为JPA是标准接口,Hibernate是实现。

      那么Hibernate是如何实现与JPA 的这种关系的呢?

      Hibernate主要是通过三个组件来实现的,及hibernate-annotation、hibernate-entitymanager和hibernate-core。

      (1)hibernate-annotation是Hibernate支持annotation方式配置的基础,它包括了标准的JPA annotation以及  Hibernate自身特殊功能的annotation。

      (2)hibernate-core是Hibernate的核心实现,提供了Hibernate所有的核心功能。

      (3)hibernate-entitymanager实现了标准的JPA,可以把它看成hibernate-core和JPA之间的适配器,它并不直接提供ORM的功能,而是对hibernate-core进行封装,使得Hibernate符合JPA的规范。

      总的来说,JPA是规范,Hibernate是框架,JPA是持久化规范,而Hibernate实现了JPA。

  • 相关阅读:
    CS229 6.4 Neurons Networks Autoencoders and Sparsity
    CS229 6.3 Neurons Networks Gradient Checking
    【Leetcode】【Easy】Min Stack
    【Leetcode】【Easy】Merge Sorted Array
    【Leetcode】【Easy】ZigZag Conversion
    【Leetcode】【Easy】Valid Palindrome
    【Leetcode】【Easy】Reverse Integer
    【Leetcode】【Easy】Palindrome Number
    【Leetcode】【Easy】Length of Last Word
    【Leetcode】【Easy】Remove Nth Node From End of List
  • 原文地址:https://www.cnblogs.com/happyPawpaw/p/5647189.html
Copyright © 2011-2022 走看看