當前位置:編程學習大全網 - 編程語言 - 開源框架Hibernate3的新特性以及發展趨勢

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

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

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

  壹 Hibernate的版本更新情況

 Hibernate版本更新速度很快 目前為止有兩個階段性的版本 Hibernate 和Hibernate 這壹點程序員從其Jar文件名便可以看出來 至本文寫成之日最新發布的版本是Hibernate

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

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

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

  二 Hibernate 的新特性

 Hibernate 在產品的應用性上有了極大提高 並且基於Java 進行了改進 且與EJB 進行了集成 在功能上有了很大的提升 同時 Hibernate還對當今另壹主流開發平臺——微軟的 NET平臺進行了支持 因此具有更加強大的生命力

 相對於Hibernate Hibernate 版本的變化包括三個方面 ( )API的變化API的變化中比較重大的變化是包名的變化 主要是包的根路徑發生了改變 這壹點程序員只需要在Eclipse中查看Hibernate jar這個文件中所包含的類就知道了 Hibernate 的根路徑從Hibernate 的net sf hibernate變成了 hibernate 由於這兩個路徑完全不同 所以程序員能夠在同壹個應用程序中同時使用Hibernate 和Hibernate 如果希望把已有的應用升級到Hibernate 那麽升級的第壹步是把Java源程序中的所有net sf hibernate替換為 hibernate 另外 在Hibernate 中 HibernateException異常以及它的所有子類都繼承了Java lang RuntimeException 因此在編譯時 編譯器不會再檢查HibernateException 在Hibernate 中 Session接口的createSQLQuery()方法被廢棄 被移到 hibernate classic Session接口中 Hibernate 采用新的SQLQuery接口來完成相同的功能 在UserType和CompositeUserType接口中也都加入了壹些新的方法 這兩個接口被移到 hibernate usertype包中 用戶定義的UserType和CompositeUserType實現類必須實現這些新方法 Hibernate 提供了ParameterizedType接口 用於更好的重用用戶自定義的類型

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

 ( )元數據元數據主要是指Hibernate映射文件中各種元素和屬性的用法的變化 首當其沖的是Hibernate映射文件的文檔類型定義 即DTD文件發生了變化 這壹點程序員可以從任何壹個Hibernate 的映射文件的文件頭中發現 即在元素中定義的URL從 mapping dtd變成了 mapping dtd

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

 ( )HQL查詢語句Hibernate 采用新的基於ANTLR的HQL/SQL查詢翻譯器 不過 Hibernate 的查詢翻譯器也依然存在 在Hibernate的配置文件中 hibernate query factory_class屬性用來選擇查詢翻譯器

  三 Hibernate的發展趨勢

 Hibernate是壹個非常優秀的持久層解決方案 具有以下發展趨勢 ( )與其他開發框架的集成將越來越成熟 如與struts spring jbpm的集成 充分發揮Hibernate自身的優勢 也吸取了對方框架的優勢 在軟件系統的各個層各司其職

 ( )產品線的逐漸完善 通過增加若幹的工具套件 並支持 net平臺 使Hibernate具有更強大的生命力

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

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

lishixinzhi/Article/program/Java/ky/201311/28316

  • 上一篇:電腦天才林納斯·托瓦茲
  • 下一篇:濟寧高級職業學校學費多少
  • copyright 2024編程學習大全網