999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

DAO模式在數據訪問中的應用

2008-04-12 00:00:00幺闊強
中國新技術新產品 2008年20期

摘要:J2EE模型提供了一個很好的企業(yè)應用框架及解決方法,提供了靈活的技術選擇,由于所有的J2EE應用都需要訪問持久性數據資源,因此實現和封裝J2EE數據訪問層越來越成為構建穩(wěn)定、健壯和靈活的J2EE應用的基礎。論文重點介紹了如何使用DAO模式來解決數據訪問客戶端對持久性存儲的問題,并給出了一種解決DAO模式對象類型依賴問題的方法。

關鍵詞:數據訪問對象(DAO); J2EE; Enterprise JavaBean (EJB)

1引言

隨著軟件系統(tǒng)的規(guī)模和復雜性的增加,人們希望將設計模式的思想應用于基于J2EE的企業(yè)信息化系統(tǒng)中,使開發(fā)者減少在J2EE平臺開發(fā)過程中的重復投資,這樣不僅會大幅度的減少開發(fā)的工作量,也會為以后整個系統(tǒng)的維護和升級打下一個堅實的基礎。本文主要介紹設計模式和其中的DAO(數據訪問對象)模式的概念及功能,探討DAO模式在哈爾濱塑料五廠企業(yè)信息化系統(tǒng)中的應用。

2設計模式概述

設計模式是指情景中標準設計問題的重復性解決方案,它關注的是特定設計問題及其解決方案。在每種模式中均描述一個設計問題和一個通用的經過驗證的解決方案。這個解決方案是對反復出現的設計結構進行識別和抽象得到的,它通常由多個類組成。在軟件系統(tǒng)的設計中,設計模式使代碼編寫真正工程化,為軟件系統(tǒng)的設計帶來諸多好處。

3 DAO設計模式

J2EE平臺是開發(fā)和運行企業(yè)級Web應用的標準,可以用于開發(fā)大型的、多層次的以及分布式的企業(yè)級Web應用系統(tǒng)。J2EE技術為組件開發(fā)提供了廣泛的支持,同時也提供了豐富的開發(fā)工具和服務,便于開發(fā)模塊化的,可重用的業(yè)務邏輯。

EJB (企業(yè)級Java Bean)的設計是J2EE應用設計中的核心模塊。目前,EJB的設計模式有幾十種,如何選擇適合自己項目的模式是EJB設計的關鍵問題,也是最難解決的問題。

3.1 DAO模式介紹

DAO簡單的說就是對持久化層的訪問路徑,客戶端得到一個DAO對象,由DAO對象訪問數據源,數據源創(chuàng)建結果集并將它返回給DAO對象,DAO對象根據結果集創(chuàng)造出數據對象并返回客戶端。這些元素之間的動態(tài)協(xié)作過程是由該模式以下幾部分完成的:

DAO (DataAccessObject)是該模式的主要對象,它封裝了底層數據訪問實現,以保證對數據源的透明訪問。用戶可以把數據加載和存儲操作委托給數據庫訪問對象。

數據源(DataSource)代表數據源實現。數據源可以是RDBMS, OODBMS,XM L資料庫、純文件系統(tǒng)等等。

結果集(ResultSet)是DAO對象訪問數據源得到的結果的集合,DAO可以用結果集包裝成數據對象。

客戶端(Client)使用數據對象進行商業(yè)邏輯。

數據對象(Data Object)是數據以對象的形式描述。它由DAO對象創(chuàng)建,然后給客戶端進行商業(yè)邏輯運算。

3.2 DAO模式的優(yōu)點

對持久化數據的訪問有良好的透明性,業(yè)務對象可以在不知道數據源實現細節(jié)的情況下訪問數據。由于一切數據訪問細節(jié)被數據訪問對象所隱藏,所以這種訪問過程是透明的。

數據庫有良好的可移植性。在應用系統(tǒng)中添加數據訪問對象,可以使得應用系統(tǒng)能夠很方便地移植到另外一種數據庫實現上。由于業(yè)務對象與數據實現是隔離的,所以在移植過程中,僅僅對數據訪問對象進行一些變化即可。

可以減少業(yè)務對象的代碼復雜度。由于數據訪問對象可以管理所有的數據訪問細節(jié),這就簡化了業(yè)務模塊和其它數據客戶的代碼,同時也提高了應用系統(tǒng)的整體可讀性和開發(fā)效率。

可以對數據訪問進行集中處理。由于所有的數據訪問操作都移交給數據訪問對象,這樣應用系統(tǒng)其它部分就與數據訪問隔離開來,而全部相關操作都由數據訪問對象集中處理,這樣也使得相關操作更加容易被維護和管理。

為了進一步說明DAO模式的優(yōu)勢,下面以一個企業(yè)信息化系統(tǒng)為例,介紹如何在具體的項目中運用DAO模式。

3.3 DAO模式的應用

哈工大塑料五廠的企業(yè)信息化系統(tǒng)包括成本查詢模塊、生產管理模塊、系統(tǒng)定義模塊、OA管理模塊、客戶關系管理模塊,現在以生產管理模塊來說明DAO模式的應用。

生產管理模塊的流程是:用戶首先要根據銷售計劃查看庫存情況,然后制定生產計劃,交由生產經理審批,批準后由研發(fā)部確定最佳的工藝參數,編制作業(yè)指導書,再交由生產經理審批并實施以保證產品質量。如果生產過程中條件發(fā)生變化,要重新進行以上流程。

Client是客戶端,可以訪問數據源以存取數據。DataAccessObject對Client隱藏了底層的數據訪問細節(jié),使Client能透明地訪問數據源,實現創(chuàng)建、查找、更新和刪除等操作。DataSource代表JDBC數據源的實現。Data代表一個傳輸對象,它被用作數據的載體,DAO可以將數據返回給客戶端,也可以從客戶端那里接收傳輸對象形式的數據,并用這些數據對數據源進行更新。ResultSet代表一次查詢操作的結果。

用戶進入生產管理子系統(tǒng)后,通過ResultSet返回的結果集查看庫存情況,再對照銷售計劃制定生產計劃,DataAccessObject提供在數據庫中創(chuàng)建、查找、更新和刪除Data的操作,不對任何查詢操作進行緩存,因此不會出現線程或同步問題的干擾,而且DAO將數據源的實現細節(jié)完全隱藏起來,不必擔心數據源對使用者的接口的影響。當應用程序使用JDBC作為持久化手段時,DAO將所有對JDBC的使用都封裝在數據訪問層內部,不會向數據訪問層之外的客戶端暴露任何屬于java.sql.*或java.x.sql.*包的異常。因此,數據訪問及操作的邏輯被封裝在了一個單獨的層次中,起到了把中間層分為兩部分的作用。

結束語

DAO模式是一種讓很多開發(fā)者都受益匪淺的功能強大的EJB設計模式。實踐證明,在EJB的設計中,適當的使用DAO模式,不但可以使代碼可重用性、可拓展性增強,而且還能夠提高效率。當然,DAO模式并不是在所有的項目中都適用,如果使用不當,反而會造成系統(tǒng)性能的下降。比如,設計該模式時增加額外的類會提高應用程序的復雜度,對于容器管理的持久性不能利用,降低了開發(fā)效率。因此,DAO模式在許多方面還需要我們進一步探討、改進和擴展。

參考文獻

[1] Deepak Alur,John Crupi,Dan Malks.Core J2EE Paterns:Best Practices and Design Strategies[M].Second Edition,Prentice Hall ,2003:10-233.

[2] Ted Husted, Cedric Dumoulin, Georgeranciscus.Struts in action[M].Manning Publications Co,2003:56-60.

[3] 鄭人杰,殷人昆,陶永雷.實用軟件工程[M].北京:清華大學出版社,1997:45-48。

[4] 泰勒(美),李東升.JDBC數據庫編程與J2EE[M].北京:電子工業(yè)出版社,2004:23-67。

主站蜘蛛池模板: 免费三A级毛片视频| 国产高清不卡| 亚洲欧美激情小说另类| 国产乱子伦视频在线播放| 国产麻豆精品久久一二三| 日本免费新一区视频| 天天综合天天综合| 国内精品自在自线视频香蕉| JIZZ亚洲国产| 一区二区三区国产精品视频| 国产成人精品第一区二区| 伊人91在线| 成人久久精品一区二区三区| 欧美yw精品日本国产精品| 欧美成人怡春院在线激情| 污网站在线观看视频| 国产成人精品一区二区秒拍1o| 亚洲精品国产精品乱码不卞| 日韩色图在线观看| 亚洲欧洲自拍拍偷午夜色| 欧美翘臀一区二区三区| 亚洲码在线中文在线观看| 四虎在线高清无码| 国产av剧情无码精品色午夜| 中文一区二区视频| 国产网友愉拍精品| 国产精品大尺度尺度视频| 狼友av永久网站免费观看| 欧美日韩亚洲综合在线观看 | 亚洲无码高清一区| 欧美亚洲日韩中文| 国产乱人伦AV在线A| 精品无码日韩国产不卡av| 国产美女无遮挡免费视频网站| av在线手机播放| 欧美日韩另类国产| 原味小视频在线www国产| 免费观看无遮挡www的小视频| 四虎影视永久在线精品| 欧美特级AAAAAA视频免费观看| 刘亦菲一区二区在线观看| 少妇精品久久久一区二区三区| 国产婬乱a一级毛片多女| 亚洲欧美日韩中文字幕在线一区| 国产成人一区| 国产91精品最新在线播放| 亚洲人视频在线观看| 在线观看国产精品日本不卡网| 激情乱人伦| 激情综合网址| 夜精品a一区二区三区| 国产人免费人成免费视频| a毛片在线播放| 国产成人精品日本亚洲77美色| 18禁高潮出水呻吟娇喘蜜芽| 国产精品欧美激情| 日本色综合网| 欧美怡红院视频一区二区三区| 亚洲丝袜中文字幕| 无码中文字幕精品推荐| 欧美成人区| 热久久这里是精品6免费观看| 亚洲最黄视频| 国产黄色视频综合| 欧美另类精品一区二区三区| 欧美一级高清视频在线播放| 久996视频精品免费观看| 亚洲无码电影| 美女被躁出白浆视频播放| 国产福利不卡视频| 在线观看91精品国产剧情免费| 成人一区在线| 亚洲一级无毛片无码在线免费视频 | 国产在线自在拍91精品黑人| 波多野结衣一区二区三视频| 国产91精品久久| 一本无码在线观看| 亚洲成人一区二区| 亚洲欧洲日产国码无码av喷潮| 国产一级小视频| 国产免费福利网站| 亚洲国产成人精品一二区|