<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    很多的J2EE應用程序需要使用持久性數據(數據庫、文件等)。不同的程序,持久性存儲是各不相同的,并且用來訪問這些不同的持久性存儲機制的API也有很大的不同。如果應用程序要在不同的持久性存儲間遷移,這些訪問特定持久存儲層的代碼將面臨重寫。
    如何解決這個問題?且看"DAO模式"

    數據訪問對象(Data Acess Object) 模式
    一.環境
    根據數據源不同,數據訪問也不同。根據存儲的類型(關系數據庫、面向對象數據庫、文件等等)和供應商實現不同,持久性存儲(比如數據庫)的訪問差別也很大

    二.問題
    許多真是的J2EE應用程序需要在一定程度上使用持久性數據。對于許多應用程序,持久性存儲是使用不同的機制實現的,并且用來訪問這些不同的持久性存儲機制的API也有很大的不同。
    比如,應用程序使用實體bean(這里應該是指BMP的bean,CMP的bean已大大降低了與RDBMS的耦合)的分布式組件來表示持久性數據,或者使用JDBC API來訪問駐留在某關系數據庫管理系統(RDBMS)中的數據,這些組件中包含連接性性和數據訪問代碼會引入這些組件與數據源實現之間的緊密耦合。組件中這類代碼依賴性使應用程序從某種數據源遷移到其他種類的數據源將變得非常麻煩和困難。當數據源變化時,組件也需要改變,以便于能夠處理新類型的數據源

    (舉個例子來說,我們UPTEL系統是使用JDBC API對 ORACLE數據庫進行連接和數據訪問的,這些JDBC API與SQL語句散布在系統中,當我們需要將UPTEL遷移到其他RDBMS時,比如曾經遷移到INFORMIX,就面臨重寫數據庫連接和訪問數據的模塊。)

    三.作用力
    1.諸如bean管理的實體bean、會話bean、servlet等組件往往需要從持久性存儲數據源中檢索數據,以及進行數據存儲等操作。
    2.根據產品供應商的不同,持久性存儲API差別也很大,這些API和其能力同樣根據存儲的類型不同也有差別,這樣存在以下缺點,即訪問這些獨立系統的API很不統一。
    3.組件需要透明于實際的持久性存儲或者數據源實現,以便于提供到不同供應商產品、不同存儲類型和不同數據源類型的更容易的移植性。

    四.解決方案
    使用數據訪問對象(DAO)模式來抽象和封裝所有對數據源的訪問。DAO管理著與數據源的連接以便檢索和存儲數據。
    DAO實現了用來操作數據源的訪問機制。數據源可以時RDBMS,LDAP,File等。依賴于DAO的業務組件為其客戶端使用DAO提供更簡單的接口。DAO完全向客戶端隱藏了數據源實現細節。由于當低層數據源實現變化時,DAO向客戶端提供的接口不會變化,所有該模式允許DAO調整到不同的存儲模式,而不會影響其客戶端或者業務組件。重要的是,DAO充當組件和數據源之間的適配器。

    (按照這個理論,如果我們UPTEL系統使用了DAO模式,就可以無縫的從ORACLE遷移到任何一個RDBMS了。夢想總是很完美的,且看看DAO模式如何實現)

    posted on 2008-02-15 17:09 LifeNote 閱讀(1859) 評論(2)  編輯  收藏 所屬分類: JavaHibernateSpringstruts
    Comments
    • # re: 《J2EE核心模式》(DAO模式)
      香草的天空
      Posted @ 2008-02-15 19:41
      一般都是Service-BusinessLogic-DAO這樣的三層模式。
      不過遷移數據庫基本上都素很痛苦的事情。
      需要設計的時候就具備很高的素質,對程序員也有很高的要求。
      所以我們很少做到這種業務。  回復  更多評論   
    • # re: 《J2EE核心模式》(DAO模式)
      51dwj
      Posted @ 2008-02-17 12:25
      非常不錯,謝謝了  回復  更多評論   
     
    主站蜘蛛池模板: 免费a级毛片无码a∨免费软件| 手机永久免费的AV在线电影网| 久久aa毛片免费播放嗯啊| 亚洲最大av无码网址| sss日本免费完整版在线观看| 波多野结衣中文一区二区免费 | 免费一本色道久久一区| 亚洲成av人片不卡无码| 久久经典免费视频| 亚洲国产成AV人天堂无码| 成年女人18级毛片毛片免费观看| 亚洲人成网亚洲欧洲无码| 精品久久久久久久免费加勒比| 国产午夜亚洲精品不卡电影| 亚洲第一福利网站在线观看| 一级人做人a爰免费视频| 亚洲国产精品一区二区第一页| 亚洲国产精品免费视频| 亚洲国产亚洲综合在线尤物| 午夜免费福利影院| 一级女性全黄久久生活片免费 | 日产国产精品亚洲系列| aa级女人大片喷水视频免费| 久久精品亚洲日本佐佐木明希| 97公开免费视频| 亚洲精品色在线网站| 国产亚洲一区二区三区在线不卡| 无码人妻一区二区三区免费看 | 精品久久久久成人码免费动漫| WWW国产亚洲精品久久麻豆| 国产亚洲精品精品国产亚洲综合| 成在人线av无码免费高潮喷水| 亚洲男女一区二区三区| 国产精品成人免费综合| 国产一区二区免费| 中文字幕亚洲综合久久综合| 亚洲成a人一区二区三区| 99久久99久久精品免费观看| 亚洲av无码日韩av无码网站冲| 亚洲精品无码成人AAA片| 91情侣在线精品国产免费|