賽迪網 > IT技術 Java > 業界資訊
  IT資訊搜索
 
IT產品搜索
[程式開發][網管世界][網路安全][數據庫技術]
[作業系統][嘉賓聊天·線上訪談][活動集錦]
[精彩專題][Symantec專區][訂閱IT技術週刊]
[開發論壇][網管論壇][安全論壇][數據庫論壇]
[作業系統論壇][Sybase專區][IBM dW技術專區]
[病毒求助][病毒與漏洞播報][文檔·源碼下載]

開源框架Hibernate3的新特性以及發展趨勢

發佈時間:2008.07.01 05:32     來源:希賽網    作者:頓海麗

Hibernate是一種強大的可提供對象-關係持久化和查詢服務的中間件,它可以使程式員依據面向對象的原理開發持久化類,實現對象之間的關聯、繼承、多態、組合、集合等。

Hibernate提供了它特有的數據庫查詢語言HQL,這種查詢語言遮罩了不同數據庫之間的差別,使你可以編寫統一的查詢語句執行查詢。不同於其他持久化解決方案的是Hibernate並沒有把SQL的強大功能遮罩掉,而是仍然相容SQL,這使你以往的關係技術依然有效。

一、Hibernate的版本更新情況

Hibernate版本更新速度很快,目前為止有兩個階段性的版本:Hibernate2和Hibernate3,這一點程式員從其Jar文件名便可以看出來。至本文寫成之日最新發佈的版本是Hibernate3.4。

Hibernate2系列的最高版本是Hibernate2.1.8,Hibernate3系列在編寫本書時的最高版本是Hibernate 3.2.5 GA版,GA也就是General Availability,即推薦廣泛使用的版本,但目前使用較多且較穩定的版本是Hibernate 3.1.3或Hibernat 3.1.2。

另外,自Hibernate3發佈以來,其產品線愈加成熟,相繼出現了Hibernate註釋、Hibernate實體管理器、Hibernate插件工具等一系列產品套件。在方便程式員使用Hibernate進行應用程式的開發的同時,也逐漸增強了Hibernate產品線的實力。

但目前市面上用於學習Hibernate開發的圖書並不多見,大多是介紹老版的Hibernate2,最近希賽和博文聯手推出的《貫通Hibernate開發》,對最新的Hibernate3作了詳盡的解答,推薦讀者閱讀。

二、Hibernate3的新特性

Hibernate3在產品的應用性上有了極大提高,並且基於Java1.5進行了改進,且與EJB3.0進行了集成,在功能上有了很大的提升。同時,Hibernate還對當今另一主流開發平臺--微軟的.NET平臺進行了支援,因此具有更加強大的生命力。

相對於Hibernate2,Hibernate3版本的變化包括三個方面:

(1)API的變化

API的變化中比較重大的變化是包名的變化,主要是包的根路徑發生了改變,這一點程式員只需要在Eclipse中查看Hibernate3.jar這個文件中所包含的類就知道了:Hibernate 3的根路徑從Hibernate2的net.sf.hibernate變成了org.hibernate。由於這兩個路徑完全不同,所以程式員能夠在同一個應用程式中同時使用Hibernate2和Hibernate3。如果希望把已有的應用升級到Hibernate3,那麼升級的第一步是把Java源程式中的所有net.sf.hibernate替換為org.hibernate。

另外,在Hibernate3中,HibernateException異常以及它的所有子類都繼承了Java.lang.RuntimeException。因此在編譯時,編譯器不會再檢查HibernateException。在Hibernate3中,Session介面的createSQLQuery()方法被廢棄,被移到org.hibernate.classic.Session介面中。Hibernate3採用新的SQLQuery介面來完成相同的功能。在UserType和CompositeUserType介面中也都加入了一些新的方法,這兩個介面被移到org.hibernate.usertype包中,用戶定義的UserType和CompositeUserType實現類必須實現這些新方法。Hibernate3提供了ParameterizedType介面,用於更好的重用用戶自定義的類型。

以上的這些主要變化將會影響到應用程式,程式員必須要進行相應的調整,才能使基於Hibernate3的應用程式正常運行。

(2)元數據

元數據主要是指Hibernate映射文件中各種元素和屬性的用法的變化。首當其衝的是Hibernate映射文件的文檔類型定義,即DTD文件發生了變化,這一點程式員可以從任何一個Hibernate3的映射文件的文件頭中發現,即在元素中定義的URL從http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd變成了http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd。

還有一個重大的改變就是lazy屬性的默認值從false變成了true,這也是Hibernate從優化應用程式性能的角度出發所做出的決定。因為當lazy=false時,Hibernate對所有字段都採取預先抓取的策略,如果程式員希望採用延遲載入,必須手工在映射文件中將lazy屬性的值設為true,然而總是採用預先抓取策略勢必會造成極大的資源佔用,從而降低應用程式的性能。所以從應用程式的角度來講,更希望lazy的默認值是true,這樣在有需要的時候才去採用預先抓取的檢索策略。

(3)HQL查詢語句

Hibernate3 採用新的基於ANTLR的HQL/SQL查詢翻譯器,不過,Hibernate2的查詢翻譯器也依然存在。在Hibernate的配置文件中,hibernate.query.factory_class屬性用來選擇查詢翻譯器。

三、Hibernate的發展趨勢

Hibernate是一個非常優秀的持久層解決方案。具有以下發展趨勢:

(1)與其他開發框架的集成將越來越成熟:如與struts、spring、jbpm的集成,充分發揮Hibernate自身的優勢,也吸取了對方框架的優勢,在軟體系統的各個層各司其職。

(2)產品線的逐漸完善:通過增加若干的工具套件,並支援.net平臺,使Hibernate具有更強大的生命力。

(3)與EJB更好的集成:集成EJB,開始將重點轉向重量級應用,使得Hibernate在企業級應用中必將佔據一席之地。

Hibernate的輕量級 ORM 模型逐步確立了在Java ORM架構中領導地位,甚至取代複雜而又繁瑣的EJB模型而成為事實上的Java ORM工業標準。而且其中的許多設計均被J2EE 標準組織吸納而成為最新EJB3.0規範的標準。

隨著Hibernate的廣泛應用,越來越多的Java中間件廠商和Java項目(如JBoss、JBPM等)開始把目光集中到Hibernate上並將其納入自身的體系,使Hibernate具有了越來越廣闊的發展前景。

(責任編輯:雲子)


[ 發表評論 ] 字體[  ] [ 列印 ] [ 進入博客 ] [ 進入論壇 ]  [ 推薦給朋友 ]
  相關文章
· Sun預計在年底之前將公開全部Java源代碼 (06-27) · 實例解析:PHP程式開發中的中文編碼問題 (06-27)
· PHP5程式中新增加日期(date)函數的常量 (06-27) · 使用PHP程式直接調用文本文件的內容實例 (06-27)
· Suse Linux系統下JAVA AWT介面亂碼問題 (06-27) · Windows下的PHP5.0安裝配製詳解 (06-27)
· BluePage通用分頁類助開發者提高開發效率 (06-26) · JSP動態網站環境搭建應用中詳細步驟介紹 (06-26)
· 利用Jsvc把Java程式嵌入到Linux服務中去 (06-26) · 講解DBA在系統設計和開發中的工作範疇 (06-26)
  客戶需求反饋表
* 姓  名:
更多資料  了解方案  認識廠商
* 單位名稱:
* 聯繫電話:
* 電子郵件:
  賽迪推薦  
  手機·資費 ·新品·導購·評測·手機資費·寬帶
手機搜索  諾基亞 N73 MOTO Z6
  IT產品 ·筆記本·臺式機·伺服器·列印·投影
IT產品搜索 
  IT技術 ·開發·網管·安全·數據庫·作業系統
  資訊化 ·熱點·專題·訪談·週刊·方案案例
· 北京新規不能霸王硬上弓 網店牌照緩期執行
· 軟體外包之變的新臺階: 提高全球交付能力
· ERP案例分析 SaaS帶來衝擊 IT服務商面臨挑戰
· 通方期貨CRM解決方案 房地產行業CRM解決方案
  IT博客 ·曾劍秋·項立剛·Java學習·網管
  IT技術論壇 ·開發·網管·安全·數據庫·系統