自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Hibernate 3新特性介紹及發(fā)展趨勢(shì)

開發(fā) 后端
Hibernate是一種強(qiáng)大的可提供對(duì)象-關(guān)系持久化和查詢服務(wù)的中間件,它可以使程序員依據(jù)面向?qū)ο蟮脑黹_發(fā)持久化類,實(shí)現(xiàn)對(duì)象之間的關(guān)聯(lián)、繼承、多態(tài)、組合、集合等。

Hibernate是一種強(qiáng)大的可提供對(duì)象-關(guān)系持久化和查詢服務(wù)的中間件,它可以使程序員依據(jù)面向?qū)ο蟮脑黹_發(fā)持久化類,實(shí)現(xiàn)對(duì)象之間的關(guān)聯(lián)、繼承、多態(tài)、組合、集合等。

Hibernate提供了它特有的數(shù)據(jù)庫(kù)查詢語(yǔ)言HQL,這種查詢語(yǔ)言屏蔽了不同數(shù)據(jù)庫(kù)之間的差別,使你可以編寫統(tǒng)一的查詢語(yǔ)句執(zhí)行查詢。不同于其他持久化解決方案的是Hibernate并沒有把SQL的強(qiáng)大功能屏蔽掉,而是仍然兼容SQL,這使你以往的關(guān)系技術(shù)依然有效。

一、Hibernate的版本更新情況

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

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

另外,自Hibernate3發(fā)布以來,其產(chǎn)品線愈加成熟,相繼出現(xiàn)了Hibernate注釋、Hibernate實(shí)體管理器、Hibernate插件工具等一系列產(chǎn)品套件。在方便程序員使用Hibernate進(jìn)行應(yīng)用程序的開發(fā)的同時(shí),也逐漸增強(qiáng)了Hibernate產(chǎn)品線的實(shí)力。

但目前市面上用于學(xué)習(xí)Hibernate開發(fā)的圖書并不多見,大多是介紹老版的Hibernate2,最近希賽和博文聯(lián)手推出的《貫通Hibernate開發(fā)》,對(duì)最新的Hibernate3作了詳盡的解答,推薦讀者閱讀。

二、Hibernate3的新特性

Hibernate3在產(chǎn)品的應(yīng)用性上有了極大提高,并且基于Java1.5進(jìn)行了改進(jìn),且與EJB3.0進(jìn)行了集成,在功能上有了很大的提升。同時(shí),Hibernate還對(duì)當(dāng)今另一主流開發(fā)平臺(tái)--微軟的.NET平臺(tái)進(jìn)行了支持,因此具有更加強(qiáng)大的生命力。

相對(duì)于Hibernate2,Hibernate3版本的變化包括三個(gè)方面:

(1)API的變化

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

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

以上的這些主要變化將會(huì)影響到應(yīng)用程序,程序員必須要進(jìn)行相應(yīng)的調(diào)整,才能使基于Hibernate3的應(yīng)用程序正常運(yùn)行。

(2)元數(shù)據(jù)

元數(shù)據(jù)主要是指Hibernate映射文件中各種元素和屬性的用法的變化。首當(dāng)其沖的是Hibernate映射文件的文檔類型定義,即DTD文件發(fā)生了變化,這一點(diǎn)程序員可以從任何一個(gè)Hibernate3的映射文件的文件頭中發(fā)現(xiàn),即在元素中定義的URL從http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd變成了http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd。

還有一個(gè)重大的改變就是lazy屬性的默認(rèn)值從false變成了true,這也是Hibernate從優(yōu)化應(yīng)用程序性能的角度出發(fā)所做出的決定。因?yàn)楫?dāng)lazy=false時(shí),Hibernate對(duì)所有字段都采取預(yù)先抓取的策略,如果程序員希望采用延遲加載,必須手工在映射文件中將lazy屬性的值設(shè)為true,然而總是采用預(yù)先抓取策略勢(shì)必會(huì)造成極大的資源占用,從而降低應(yīng)用程序的性能。所以從應(yīng)用程序的角度來講,更希望lazy的默認(rèn)值是true,這樣在有需要的時(shí)候才去采用預(yù)先抓取的檢索策略。

(3)HQL查詢語(yǔ)句

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

三、Hibernate的發(fā)展趨勢(shì)

Hibernate是一個(gè)非常優(yōu)秀的持久層解決方案。具有以下發(fā)展趨勢(shì):

(1)與其他開發(fā)框架的集成將越來越成熟:如與struts、spring、jbpm的集成,充分發(fā)揮Hibernate自身的優(yōu)勢(shì),也吸取了對(duì)方框架的優(yōu)勢(shì),在軟件系統(tǒng)的各個(gè)層各司其職。

(2)產(chǎn)品線的逐漸完善:通過增加若干的工具套件,并支持.net平臺(tái),使Hibernate具有更強(qiáng)大的生命力。

(3)與EJB更好的集成:集成EJB,開始將重點(diǎn)轉(zhuǎn)向重量級(jí)應(yīng)用,使得Hibernate在企業(yè)級(jí)應(yīng)用中必將占據(jù)一席之地。

Hibernate的輕量級(jí) ORM 模型逐步確立了在Java ORM架構(gòu)中領(lǐng)導(dǎo)地位,甚至取代復(fù)雜而又繁瑣的EJB模型而成為事實(shí)上的Java ORM工業(yè)標(biāo)準(zhǔn)。而且其中的許多設(shè)計(jì)均被J2EE 標(biāo)準(zhǔn)組織吸納而成為最新EJB3.0規(guī)范的標(biāo)準(zhǔn)。

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

【編輯推薦】

  1. 淺談Struts+Hibernate+Spring的整合方法
  2. Hibernate O/R映射三大基本定則
  3. 淺談JSP下的Hibernate分頁(yè)技術(shù)
責(zé)任編輯:book05 來源: CCID
相關(guān)推薦

2009-09-24 10:25:30

Hibernate發(fā)展

2015-10-19 12:48:45

華三

2020-12-15 13:20:40

大數(shù)據(jù)新基建

2010-08-31 10:46:20

2009-09-24 10:22:38

Hibernate3新

2022-11-05 08:34:20

數(shù)據(jù)異構(gòu)網(wǎng)絡(luò)

2021-12-28 11:00:28

芯片半導(dǎo)體技術(shù)

2014-06-06 15:57:00

2025-01-23 08:00:00

開源人工智能大型語(yǔ)言模型

2015-06-16 13:08:45

2010-09-07 17:59:53

監(jiān)控MXsoft美信

2021-01-19 21:59:14

大數(shù)據(jù)物聯(lián)網(wǎng)邊緣計(jì)算

2018-12-25 18:07:23

網(wǎng)絡(luò)安全云計(jì)算信息化

2009-03-24 11:54:12

2013-06-17 09:19:50

WLAN無線網(wǎng)絡(luò)802.11ac

2024-05-30 08:00:00

2010-03-02 21:46:18

運(yùn)維管理Mocha BSM摩卡軟件

2010-06-17 17:44:55

UML發(fā)展

2021-08-31 06:45:19

IDC大數(shù)據(jù)數(shù)據(jù)中心

2015-03-27 11:14:42

云計(jì)算
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)