国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

對(duì)象持久化技術(shù)在企業(yè)級(jí)應(yīng)用中的技術(shù)架構(gòu)研究

2012-04-29 00:44石少敏
電腦知識(shí)與技術(shù) 2012年32期
關(guān)鍵詞:企業(yè)應(yīng)用面向?qū)ο?/a>

石少敏

摘要:面向?qū)ο笞鳛楫?dāng)前企業(yè)級(jí)應(yīng)用系統(tǒng)開發(fā)技術(shù)的基本思想,由于對(duì)象的存儲(chǔ)機(jī)制,存在不可避免的缺陷,即程序?qū)ο笾荒艽嬖谟趦?nèi)存,業(yè)務(wù)數(shù)據(jù)和對(duì)象的生存周期狀態(tài)不能被永久保存。對(duì)象持久化技術(shù)即是該問題的針對(duì)性解決方案。對(duì)于企業(yè)應(yīng)用而言,可靠的對(duì)象持久化方案,是提高應(yīng)用系統(tǒng)健壯性和穩(wěn)定性的保障基礎(chǔ)。

該文即從對(duì)象持久化技術(shù)的架構(gòu)進(jìn)行研究分析,明確其包含的技術(shù)要點(diǎn),并與面向?qū)ο髷?shù)據(jù)庫思想相結(jié)合,闡述其在系統(tǒng)應(yīng)用中的優(yōu)勢(shì),為企業(yè)應(yīng)用開發(fā)提供強(qiáng)健的技術(shù)基礎(chǔ)。

關(guān)鍵詞:對(duì)象持久化;面向?qū)ο?;企業(yè)應(yīng)用;Hibemate

中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2012)32-7641-03

1對(duì)象持久化

對(duì)象持久化技術(shù)是提供對(duì)象持久化服務(wù)的中間件技術(shù),其本質(zhì)思想是把數(shù)據(jù)或程序同時(shí)存儲(chǔ)到存儲(chǔ)器或數(shù)據(jù)庫中。從整個(gè)系統(tǒng)的體系結(jié)構(gòu)中把對(duì)象持久化功能分離出來,可以降低系統(tǒng)緊耦合,從而提高系統(tǒng)功能模塊的復(fù)用程度。

對(duì)象持久化是永久存儲(chǔ)對(duì)象的一種技術(shù)。持久化機(jī)制包括基于OS的文件存儲(chǔ)機(jī)制、面向?qū)ο髷?shù)據(jù)庫以及關(guān)系數(shù)據(jù)庫等。

對(duì)象持久化的實(shí)現(xiàn),我們必須按照持久化機(jī)制所選擇的,來確定對(duì)象的持久化的方法。各種持久化方法有其各自的優(yōu)缺點(diǎn),不同的企業(yè)應(yīng)用應(yīng)該根據(jù)自身的系統(tǒng)機(jī)構(gòu)模式,選取不同的持久化策略。

2面向?qū)ο髷?shù)據(jù)庫

對(duì)如聲音、圖像、圖形、影像等這些數(shù)據(jù)類型多樣、結(jié)構(gòu)復(fù)雜的數(shù)據(jù)進(jìn)行存儲(chǔ)和處理,以及在此基礎(chǔ)之上的對(duì)數(shù)據(jù)庫的各種檢索、查詢、修改,傳統(tǒng)的數(shù)據(jù)庫都不能很好的支持。為了有效管理這些數(shù)據(jù),面向?qū)ο髷?shù)據(jù)庫系統(tǒng)應(yīng)運(yùn)而生。

面向?qū)ο髷?shù)據(jù)庫系統(tǒng)以面向?qū)ο笏枷氲幕咎卣鳛榛A(chǔ),支持對(duì)象數(shù)據(jù)模型。同時(shí),作為一個(gè)數(shù)據(jù)庫管理系統(tǒng),也具備數(shù)據(jù)庫管理系統(tǒng)的各項(xiàng)基本功能:

1)永久性,即對(duì)數(shù)據(jù)的永久保存;

2)并發(fā)事務(wù)控制,即保證多個(gè)用戶同時(shí)操作時(shí),數(shù)據(jù)能夠保持其完整和準(zhǔn)確;

3)故障恢復(fù)功能,能夠?qū)?shù)據(jù)庫從某一錯(cuò)誤或故障狀態(tài)恢復(fù)到正確狀態(tài)的功能;

4)獨(dú)立于應(yīng)用的非過程化查詢功能。面向?qū)ο髷?shù)據(jù)庫當(dāng)前以支持典型的選擇、連接、投影等查詢功能的OQL語言為其標(biāo)準(zhǔn)查詢語言。

此外,部分面向?qū)ο髷?shù)據(jù)庫系統(tǒng)還具有新的應(yīng)用領(lǐng)域所需要的特性,如版本分布式計(jì)算、長(zhǎng)事務(wù)和嵌套事務(wù)、模式演化、版本管理等。由此可以看出,在對(duì)象模型基礎(chǔ)上的面向?qū)ο髷?shù)據(jù)庫,對(duì)對(duì)象數(shù)據(jù)的管理遵循面向?qū)ο蟮幕舅枷?,而其豐富的功能,也逐漸使其成為對(duì)象持久化實(shí)施的優(yōu)勢(shì)技術(shù)。

3對(duì)象持久化技術(shù)Hibernate

3.1Hibernate框架介紹

所有的系統(tǒng)其基本配置功能都基本類似,因此,關(guān)鍵問題是如何提高系統(tǒng)的效率。持久化對(duì)象,其本質(zhì)是通過不斷地優(yōu)化數(shù)據(jù)庫的訪問策略,更有效地提高系統(tǒng)應(yīng)用性能。由于系統(tǒng)數(shù)據(jù)庫負(fù)擔(dān)主要來自對(duì)數(shù)據(jù)庫的頻繁調(diào)用,從而也連帶影響系統(tǒng)的執(zhí)行效率;同時(shí),當(dāng)數(shù)據(jù)庫的負(fù)載失衡嚴(yán)重時(shí),也將直接導(dǎo)致應(yīng)用系統(tǒng)的癱瘓。因此,對(duì)數(shù)據(jù)庫訪問策略的優(yōu)化思路,其基本出發(fā)點(diǎn)即減少訪問數(shù)據(jù)庫的次數(shù),減少數(shù)據(jù)庫的負(fù)載。

Hibernate作為現(xiàn)在最流行的輕量級(jí)持久化框架之一,是一個(gè)開源的ORM框架,同時(shí)它支持所有主流商業(yè)數(shù)據(jù)庫和開源數(shù)據(jù)庫,支持多種緩存機(jī)制,這些特點(diǎn)就為從框架級(jí)別提高系統(tǒng)數(shù)據(jù)操作效率提供了基礎(chǔ)。最重要的,Hibernate對(duì)JDBC對(duì)象的輕量級(jí)封裝,這在很大程度上為開發(fā)人員直接采用面向?qū)ο蟮姆椒ú僮鲾?shù)據(jù)庫提供了可行性。在Hibernate框架的支持下,開發(fā)人員對(duì)持久層的開發(fā)工作,完全可以直接應(yīng)用像關(guān)聯(lián)、繼承、多態(tài)、組合等這些Java中的基礎(chǔ)架構(gòu)功能。開發(fā)人員所要做的工作,不過是對(duì)新增加的一些配置文件進(jìn)行準(zhǔn)確定義,通過這些配置文件,大大節(jié)省了以往開發(fā)人員用戶手工硬編碼JDBC和SQL的時(shí)間,也實(shí)現(xiàn)了以面向?qū)ο蟮姆绞讲僮鲾?shù)據(jù)庫。

3.2Hibernate框架邏輯簡(jiǎn)介

Hibernate作為一個(gè)開源框架,其為應(yīng)用系統(tǒng)提供持久化服務(wù)的實(shí)現(xiàn)機(jī)制,可用如圖1所示的示例圖進(jìn)行說明:

Hibernate從技術(shù)上是使用反射機(jī)制和運(yùn)行時(shí)字節(jié)碼來生成實(shí)現(xiàn)持久化的代碼。圖1清晰描述了其內(nèi)部邏輯,即通過定義XML文件實(shí)現(xiàn)javabean中的對(duì)象與數(shù)據(jù)庫中數(shù)據(jù)表數(shù)據(jù)項(xiàng)字段表的映射,以此實(shí)現(xiàn)對(duì)數(shù)據(jù)庫表的操作,從而為應(yīng)用程序提供持久化服務(wù)。

3.3Hibernate框架的優(yōu)化策略

3.3.1數(shù)據(jù)庫連接池技術(shù)

數(shù)據(jù)庫連接池技術(shù),如今已是普遍系統(tǒng)開發(fā)所考慮的必備技術(shù)。對(duì)應(yīng)用連接池技術(shù)的應(yīng)用,因其應(yīng)用的普遍性,已可以將其視為應(yīng)用系統(tǒng)開發(fā)的基礎(chǔ)技術(shù)方案之一。

數(shù)據(jù)庫連接池技術(shù),其核心思想是使程序中所有數(shù)據(jù)庫訪問請(qǐng)求能夠復(fù)用在應(yīng)用啟動(dòng)時(shí)所建立的一定數(shù)量的數(shù)據(jù)庫連接,并將這些數(shù)據(jù)庫連接作為對(duì)象存儲(chǔ)在一個(gè)容器對(duì)象中。如此,省去程序每次訪問數(shù)據(jù)庫時(shí)需要建立連接的工作,不但改進(jìn)了對(duì)系統(tǒng)資源的浪費(fèi),同時(shí),也可觀地節(jié)省了程序的性能開銷。

3.3.2緩存管理機(jī)制

Hibernate框架結(jié)構(gòu),具備良好的緩存管理機(jī)制,以期優(yōu)化對(duì)象持久化的性能。

緩存技術(shù)的應(yīng)用,是提升系統(tǒng)性能的關(guān)鍵技術(shù)之一,其基本思想即是通過減少直接讀寫數(shù)據(jù)庫的次數(shù),來提升數(shù)據(jù)讀寫速度。之所以能夠如此考慮,是基于緩存技術(shù)的數(shù)據(jù)存儲(chǔ)機(jī)制。通常數(shù)據(jù)庫以硬盤作為存儲(chǔ)介質(zhì),而緩存則是以內(nèi)存作為存儲(chǔ)介質(zhì),數(shù)據(jù)來源于數(shù)據(jù)庫中數(shù)據(jù)的拷貝,而從內(nèi)存讀取數(shù)據(jù)的速度遠(yuǎn)比從硬盤讀取數(shù)據(jù)要快,由此,應(yīng)用程序在讀數(shù)據(jù)的時(shí)候便可以直接讀取緩存中的數(shù)據(jù),從而節(jié)省了數(shù)據(jù)讀取所需的硬件開銷。也因此,緩存技術(shù)成為減少數(shù)據(jù)庫直接訪問的基礎(chǔ)策略。

3.3.3優(yōu)化數(shù)據(jù)庫訪問代碼

Hibernate作為一種系統(tǒng)應(yīng)用開發(fā)框架技術(shù),在優(yōu)化系統(tǒng)性能方面的方案,也包括了通過使用提供的Query接口中的方法來提高效率。

iterate()方法在條件查詢應(yīng)用中有比較多的使用,而其本質(zhì)是在3.3.2節(jié)所述的緩存管理思想的基礎(chǔ)上來實(shí)現(xiàn)優(yōu)化。當(dāng)程序需要條件查詢時(shí),先對(duì)緩存進(jìn)行搜索,查找符合條件ID字段;若緩存中有符合條件的結(jié)果,就可以直接返回查詢結(jié)果集。另外,用iterate()方法代替list()方法,在某些情況下能夠減少select語句中的字段,降低了訪問數(shù)據(jù)庫時(shí)的數(shù)據(jù)量。

Hibernate從類似如上的一些細(xì)節(jié)上,一點(diǎn)一點(diǎn)改進(jìn)框架對(duì)系統(tǒng)性能的支持。

3.4Hibernate實(shí)現(xiàn)

作為企業(yè)應(yīng)用和關(guān)系數(shù)據(jù)庫之間的銜接件,使用Hibernate提供對(duì)象持久化服務(wù),具體是通過一個(gè)配置文件實(shí)現(xiàn)對(duì)Hibernate的配置和初始化。配置方式有多種,其中使用Hibernate.properties文件和Hibernate.cfg.xml,兩種配置是一樣的。

配置文件除完成連接驅(qū)動(dòng)類、用戶名、密碼、URL等的初始化外,Hibernate.cfg.xml文件還允許定義mappingresource,完成寫入持久化類的映射文件(類名.hbm.xml)。

一種完全面向?qū)ο蟮姆椒ň褪菓?yīng)用對(duì)象持久層的開發(fā)方法,在此開發(fā)方法中,一方面,要從問題域中抽象出類與對(duì)象;另一方面,由于對(duì)象持久層實(shí)現(xiàn)了持久化對(duì)象與存儲(chǔ)介質(zhì)的交互,使用一些成熟的持久層框架技術(shù),可以大幅提高系統(tǒng)開發(fā)效率和應(yīng)用性能。也正是基于此,當(dāng)前持久層框架技術(shù)已被廣泛應(yīng)用于各類企業(yè)應(yīng)用系統(tǒng)開發(fā)中。

Hibemate是很靈活和強(qiáng)大的,它自身提供了很多性能優(yōu)化策略,針對(duì)不同的數(shù)據(jù)庫和訪問量會(huì)有不同的優(yōu)化策略。

4總結(jié)

對(duì)象持久化雖然概念簡(jiǎn)單,但是它的實(shí)現(xiàn)可能會(huì)很復(fù)雜。所以應(yīng)根據(jù)實(shí)際情況,考慮是使用較簡(jiǎn)單的實(shí)現(xiàn)方法,還是采用復(fù)雜的實(shí)現(xiàn)方法使得系統(tǒng)易于維護(hù)和移植。應(yīng)用程序開發(fā)者也可以考慮使用第三方產(chǎn)品實(shí)現(xiàn)對(duì)象持久化,這樣做的費(fèi)用看起來可能比直接開發(fā)的費(fèi)用要高,但是它能確保持久化功能的完整實(shí)現(xiàn)。

該文即從對(duì)象持久化技術(shù)的架構(gòu)進(jìn)行探討,對(duì)其各項(xiàng)技術(shù)要點(diǎn)進(jìn)行分析,闡述其在企業(yè)應(yīng)用系統(tǒng)開發(fā)中的優(yōu)勢(shì),以期為企業(yè)應(yīng)用開發(fā)提供強(qiáng)健的技術(shù)基礎(chǔ)。

參考文獻(xiàn):

[1]鄧牧.Java對(duì)象持久化技術(shù)與Hibemate[J].計(jì)算機(jī)與現(xiàn)代化,2008(8).

[2]秦奕青.對(duì)象持久化常用方法研究[J].北京機(jī)械工業(yè)學(xué)院學(xué)報(bào),2003,18(1).

[3]薛鵬飛,陳國(guó)同.基于.NET平臺(tái)的對(duì)象持久化方法研究[J].泰州職業(yè)技術(shù)學(xué)院學(xué)報(bào),2007(4).

[4]王新輝,楊海明,葉瀟.基于Hibernate對(duì)象持久化技術(shù)的優(yōu)化策略分析與具體實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2007(10).

猜你喜歡
企業(yè)應(yīng)用面向?qū)ο?/a>
面向?qū)ο蟮挠?jì)算機(jī)網(wǎng)絡(luò)設(shè)計(jì)軟件系統(tǒng)的開發(fā)
面向?qū)ο蟮臄?shù)據(jù)交換協(xié)議研究與應(yīng)用
論財(cái)務(wù)軟件在企業(yè)中存在的問題及對(duì)策
淺析管理會(huì)計(jì)在企業(yè)應(yīng)用中的問題及對(duì)策
微信營(yíng)銷在企業(yè)應(yīng)用中的問題及對(duì)策研究
基于面向?qū)ο蟮腛ffice評(píng)測(cè)系統(tǒng)的分析
峰叢洼地農(nóng)作物面向?qū)ο笮畔⑻崛∫?guī)則集
中國(guó)SaaS企業(yè)應(yīng)用平臺(tái)行業(yè)研究——在互聯(lián)網(wǎng)風(fēng)潮中穩(wěn)步增長(zhǎng)
面向?qū)ο蟮腟oS體系結(jié)構(gòu)建模方法及應(yīng)用
淺析設(shè)備維修管理系統(tǒng)在化工企業(yè)應(yīng)用中存在的問題與對(duì)策