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。
轉載于:https://www.cnblogs.com/ms-grf/p/7170927.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的JPA与Hibernate的关系的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python内置模块和第三方模块
- 下一篇: MyBatis动态传入表名,字段名参数的