天天看點

JPA(Java Persistence API)Java持久化API-介紹

JPA全稱: Java Persistence API

JPA的宗旨是為POJO提供持久化标準規範,能夠脫離容器獨立運作,很友善開發和測試。

JPA通過JDK 5.0注解或XML描述對象-關系表的映射關系,并将運作期的實體對象持久化到資料庫中。

出現的原因:

簡化現有Java EE和Java SE應用的對象持久化的開發工作;

Sun希望整合對ORM技術,實作持久化領域的統一。

JPA的實作架構有:Hibernate EntityManager(RedHat)、TopLink Essentials(Oracle/GlassFish,EJB 3.0中的JPA參考實作),Apache OpenJPA(BEA)、EclipseLink(http://www.eclipse.org/eclipselink/)、JDO等ORM架構

JPA技術:

1.ORM映射中繼資料:

JPA支援XML和JDK 5.0注解兩種中繼資料的形式,中繼資料描述對象和表之間的映射關系,架構據此将實體對象持 久化到資料庫表中;

2.JPA的API:

用來操作實體對象,執行CRUD操作,架構在背景替我們完成所有的事情,開發者從繁瑣的JDBC和SQL代碼中解脫出來。

3.查詢語言:

通過面向對象而非面向資料庫的查詢語言查詢資料,避免程式的SQL語句緊密耦合

ORM 是Object-Relation-Mapping,即對象關系影射技術,是對象持久化的核心。ORM是對JDBC的封裝,進而解決了JDBC的各種存在問題:

JPA是目前比較流行的一種ORM技術之一,是以他擁有ORM技術的各種特點,當然他還有自己的一些優勢:

1.标準化

JPA 是 JCP 組織釋出的 Java EE 标準之一,是以任何聲稱符合 JPA 标準的架構都遵循同樣的架構,提供相同的通路 API,這保證了基于JPA開發的企業應用能夠經過少量的修改就能夠在不同的JPA架構下運作。

2.對容器級特性的支援

JPA 架構中支援大資料集、事務、并發等容器級事務,這使得 JPA 超越了簡單持久化架構的局限,在企業應用發揮更大的作用。

3.簡單易用,內建友善

JPA的主要目标之一就是提供更加簡單的程式設計模型:在JPA架構下建立實體和建立Java 類一樣簡單,沒有任何的限制和限制,隻需要使用 javax.persistence.Entity進行注釋;JPA的架構和接口也都非常簡單,沒有太多特别的規則和設計模式的要求,開發者可以很容易的掌握。JPA基于非侵入式原則設計,是以可以很容易的和其它架構或者容器內建。

4.可媲美JDBC的查詢能力

JPA的查詢語言是面向對象而非面向資料庫的,它以面向對象的自然文法構造查詢語句,可以看成是Hibernate HQL的等價物。JPA定義了獨特的JPQL(Java Persistence Query Language),JPQL是EJB QL的一種擴充,它是針對實體的一種查詢語言,操作對象是實體,而不是關系資料庫的表,而且能夠支援批量更新和修改、JOIN、GROUP BY、HAVING 等通常隻有 SQL 才能夠提供的進階查詢特性,甚至還能夠支援子查詢。

5.支援面向對象的進階特性

JPA 中能夠支援面向對象的進階特性,如類之間的繼承、多态和類之間的複雜關系,這樣的支援能夠讓開發者最大限度的使用面向對象的模型設計企業應用,而不需要自行處理這些特性在關系資料庫的持久化。