JPA教學
任何企業應用程序通過存儲和檢索大量數據進行數據庫操作。儘管所有的存儲管理提供技術,應用程序開發人員通常很難有效地執行數據庫操作。
一般情況下,Java開發人員使用大量的代碼,或使用專有的架構與數據庫進行交互,而使用JPA與數據庫綁定交互負擔顯著降低。它形成(數據庫程序)對象模型之間的橋樑(Java程序)和關係模型。
關係型和對象模型之間的不匹配
關係對象表示以表格的形式,而對象模型表示的對象格式的相互連接的圖形。而存儲和檢索來自關係數據庫的對象模型,一些不匹配的發生是由於以下原因:
粒度:對象模型比關係模型更精細。
亞型:亞型(指繼承)所有類型的關係數據庫不支持。
標識:如對象模型,關係模型並沒有同時編寫暴露身份。
關聯:關係模型無法確定多重關係,同時尋找到一個對象域模型。
數據導航:在一個對象網絡對象之間的數據導航是在這兩種模式中有所不同。
JPA是什麼?
Java持久性API(簡稱JAP)是類和方法的集合,以海量數據關係映射持久並存儲到數據庫,這是由Oracle公司提供方案技術。
在哪裏使用JPA?
爲了減少編寫代碼,對象關係管理的負擔,程序員遵循「JPA提供者」框架,它可以方便地與數據庫實例的交互。這裏所需要的框架接管JPA。
JPA 歷史
早期版本的EJB,定義持久層結合使用 javax.ejb.EntityBean 接口作爲業務邏輯層。
同時引入EJB3.0的持久層分離,並指定爲JPA1.0(Java持久性API)。這個API規範隨着JAVA EE5對2006年5月11日使用JSR220規範發佈。
JPA2.0的JAVA EE 6規範發佈於2009年12月10日併成Java Community Process JSR317 的一部分。
JPA2.1使用JSR338 的 JAVA EE7的規範發佈於2013年4月22日。
JPA提供者
JPA是一個開源的API,因此各企業廠商如Oracle,Redhat,Eclipse等,通過增加 JPA 持續性,在提供JPA的新產品。這些產品包括:
Hibernate, Eclipselink, Toplink, Spring Data JPA, etc.