JPA簡介

來源:互聯網
上載者:User

JPA通過JDK 5.0註解或XML描述對象-關係表的映射關係,並將運行期的實體物件持久化到資料庫中。

起源

Sun引入新的JPA ORM規範出於兩個原因:其一,簡化現有Java EE和Java SE應用的對象持久化的開發工作;其二,Sun希望整合對ORM技術,實現天下歸一。

JPA由EJB 3.0軟體專家組開發,作為JSR-220實現的一部分。但它不囿於EJB 3.0,你可以在Web應用、甚至案頭應用中使用。JPA的宗旨是為POJO提供持久化標準規範,由此可見,經過這幾年的實踐探索,能夠脫離容器獨立運 行,方便開發與測試的理念已經深入人心了。目前Hibernate 3.2、TopLink 10.1.3以及OpenJPA都提供了JPA的實現。

JPA的總體思想和現有Hibernate、TopLink,JDO等ORM架構大體一致。總的來說,JPA包括以下3方面的技術:

ORM映射中繼資料

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

JPA 的API

用來操作實體物件,執行CRUD操作,架構在後台替我們完成所有的事情,開發人員從繁瑣的JDBC和SQL代碼中解脫出來。

查詢語言

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

JPA的優勢

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個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.