JPA學習總結

一 概念
Java Persistence API(JPA)是 EJB 3.0 新引入的數據持久化編程模型,它利用 Java 5 中的註釋(Annotation)和對象/關係映射,爲數據持久化提供了更簡單、易用的編程方式。

二 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 定義了獨特的 JPQL(Java Persistence Query Language),JPQL 是 EJB QL 的一種擴展,它是針對實體的一種查詢語言,操作對象是實體,而不是關係數據庫的表,而且能夠支持批量更新和修改、JOIN、GROUP BY、HAVING 等通常只有 SQL 才能夠提供的高級查詢特性,甚至還能夠支持子查詢。
5 支持面向對象的高級特性
JPA 中能夠支持面向對象的高級特性,比如類之間的繼承、多態和類之間的複雜關係,這樣的支持能夠讓開發者最大限度的使用面向對象的模型設計企業應用,而不需要自行處理這些特性在關係數據庫的持久化。

三 OpenJPA 簡介
OpenJPA 是 Apache 組織提供的開源項目,它實現了 EJB 3.0 中的 JPA 標準,爲開發者提供功能強大、使用簡單的持久化數據管理框架。OpenJPA 封裝了和關係型數據庫交互的操作,讓開發者把注意力集中在編寫業務邏輯上。OpenJPA 可以作爲獨立的持久層框架發揮作用,也可以輕鬆的與其它 Java EE 應用框架或者符合 EJB 3.0 標準的容器集成。

四 Spring2.0的的新特性
1.引入基於Xml-Schema的配置語法,簡化了Xml的配置
2.引入新的Bean作用域(request和session範圍)
3.可擴展的容器級Xml配置(Spring官方文檔將這個功能上升到了DSL級別)
4.AOP有了很大改進,更無縫地整合了AspectJ,爲管理Spring容器外的對象提供了可能
5.JdbcTemplate的改進(增加了NamedParameterJdbcTemplate和SimpleJdbcTemplate)
6.更簡單的事務配置
7.Spring Web MVC的大幅改進和增強(引入了CoC的觀點和增強了的標籤庫)
8.Spring的Scheduling支持引入TaskExecutor抽象
9.支持JPA,支持異步JMS,更好的JMX支持
10.支持動態語言,JRuby,Groovy,BeanShell

五 其它
1 JPA是需要Provider來實現其功能的,Hibernate就是JPA Provider中很強的一個,目前來說應該無人能出其右。從功能上來說,JPA現在就是Hibernate功能的一個子集。
2 在spring 2.0.1中,正式提供對jpa的支持,目前支持的實現包括toplink,hibernate entitymanager以及openjpa。
3 TopLink收費,也開源了。OpenJPA雖然免費,但功能,性能,普及性更加不用一提。

六 參考資料
1《Spring2.0的的新特性》
http://spirit.jay.blog.163.com/blog/static/9889320200742105054422/

2《使用 Apache OpenJPA 開發 EJB 3.0 應用》 很好的,推薦!!!!!
http://www.ibm.com/developerworks/cn/java/j-lo-openjpa1/
3《感受jpa 》
http://www.javaeye.com/article/49568

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章