您好,登錄后才能下訂單哦!
小編給大家分享一下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屬性用來選擇查詢翻譯器。
以上是“Hibernate3有哪些新特性”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。