1. 程式人生 > >JPA 之 深入淺出 --概述講解

JPA 之 深入淺出 --概述講解

.什麼是JPA

               JPA(Java Persistence API,Java持久化API),定義了物件-關係對映(ORM)以及實體物件持久化的標準介面.JPAEJB3.0規範的一部分,JPA不侷限於EJB3.0,而是作為POJO持久化的標準規範,可以脫離容器獨立的執行,開發和測試變得更加方便.

JPA提供了以POJO程式設計模型為持久化物件的機制;通過JDK5.0註解或XML描述物件-關係表的對映關係,並將執行期的實體物件持久化到資料庫.JPA的結構如下所示:


.JPA的產生

JPASUN引入的.那麼SUN為什麼要引入新的JPA ORM規範呢.主要是處於兩個原因

:

其一:簡化現有Java EE應用的物件持久化的開發工作:

 *和實體Bean相比,需要配置檔案,提供了更好的開發體驗

*不用於EJB3.0,JPA不依賴J2EE容器,java中的通用API.

其二.Sun希望整合ORM技術,統一各種ORM框架的規範,實現天下統一.目前Hibenate3.2已經提供了JPA的實現.

.為什麼要使用JPA

咱們都知道持久化的作用是處理複雜的業務邏輯,減少重複程式碼.如果你寫過複雜的應用,就會發現用JDBC要處理大量地處理字串,而且直接使用JDBC字串處理特別容易導致SQL注入漏洞,如果直接使用框架就可以省去這些麻煩.更加專注於業務邏輯.JPA的出現就是為了制定一個持久化的標準

.

.JAPhibernate存在什麼關係

JPA的一個抽象或者介面,JPAhibernate的關係就猶如JDBCJDBC驅動的關係.

JPA是一種規範:JPA本質上就是一種ORM規範,不要誤以為是ORM框架.因為JPA並未提供ORM實現,它只是制訂了一些規範,提供了一些程式設計的API介面但具體實現則由用伺服器廠商提供.

hibernate是具體實現,hibernate除了作為ORM框架之外,它也是一種JPA實現.

從功能上來說,我更加願意理解JPAhibernate功能的一個子集.

.JPA的優缺點

優點:

(1)標準化

(2)對容器級特性的支援:JPA框架中支援大資料,

事務,併發等容器級事務.

(3)簡單易用,整合方便:JPA的主要目標之一就是提供更加簡單的程式設計模型.

(4)JDBC的查詢能力不分上下:JPA的查詢語言是面向物件的,JPA定義了獨特的JPQL,而且能夠支援批量更新和修改.

(5)支援面向物件的高階特性:JPA中能夠支援面向物件的高階特性.

缺點:

       (1)由於出來的時間不是特別長,在技術上還不是特別的穩定.

       (2)JPA是一種規範不是一種產品,需要提供商提供一個實施,才能獲得這些基於標準的API優勢.

       (3)JPAhibernateORM框架愛真子集,只提供其中最好的功能,如果應用程式中需要的功能,但是規範中沒有提供的功能,則使用供應商特有的API,導致移植性減弱.

.主要技術

(1)ORM對映元資料

JPA支援XMLJDK5.0註解兩種元資料的形式,元資料描述物件和表之間的對映關係,框架將實體物件持久化到資料庫表中.

(2)JPAAPI

API在哪裡都是常用常見的.在最初學習的VB中都有API的存在.JPA中再次見到API,從而可見API的強大.此處的API用來操作實體物件,執行CRUD操作,框架在後臺代替我們完成所有的事情,把開發者從繁瑣的JDBCSQL程式碼中解脫出來.

(3)查詢語言

這是持久化操作中很重要的一個方面,通過面向物件而非面向資料庫的查詢語言查詢資料,避免程式的SQL語句緊密耦合.

學習還得從巨集觀下手,大概瞭解這個內容的來龍去脈和精髓,在深入學習內涵.就如要了解JPA這東西,就需要和以前學習過的hibernateSQL ,API聯絡起來,那麼就會變得簡單了,理解起來就快了.學習要從巨集觀出發,在去尋找能產生共鳴的某個知識點.往下還會繼續給大家介紹關於JPA的內容