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

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

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

    問題虛擬背景:
    A項目組要實現一個基于Sql Server的應用,但工作環境只安裝有MySql(公司對開源比較看好: )),而且客戶有可能會轉移到Oracle數據庫環境。要求應用具有數據庫移植能力和快速更換能力,使應用在工作環境調試成功后能迅速轉移到客戶的Sql Server環境,而且將來可以方便地轉向Oracle。

    Andy提出的可用方案:
    1、使用標準JDBC
    2、使用抽象類定義數據訪問單元
    3、定義具體數據源訪問單元繼承2中接口

    代碼示例:
    定義數據訪問單元抽象類,包含數據訪問邏輯

    publicabstractclassDataManager
    {
    protectedstaticStringconString=null;
    protectedstaticStringurlString=null;
    publicDataType[]getData()
    {
    //fetchdatausingstandardJDBCwithconStringandurlString
    }


    publicvoidsetData(DataType[]dataArray)
    {
    //storedatausingstandardJDBCwithconStringandurlString
    }

    }

    定義具體數據源訪問單元

    publicclassHsqlDataManagerextendsDataManager
    {
    static
    {
    conString
    ="org.hsqldb.jdbcDriver";
    urlString
    ="jdbc:hsqldb:db/YourDatabaseName";
    }

    }


    publicclassOdbcBlogManagerextendsAbstractBlogManager
    {
    static
    {
    conString
    ="sun.jdbc.odbc.JdbcOdbcDriver";
    urlString
    ="jdbc:odbc:db/YourDatabaseName";
    }

    }


    在調用數據訪問層時,可以聲明一個DataManager的引用,然后在構造器中實例化為具體子類,如:

    publicclassAndy
    {
    privateDataManagerdataManager=null;

    publicAndy
    {
    dataManager
    =newHsqlDataManager();
    //或者在資源文件里填寫具體子類,然后在這里動態加載并實例化
    }


    publicvoiddoSomething()
    {
    dataManager.getData();

    }

    }


    以后要遷移到另一個數據庫(有JDBC驅動),只需定義具體子類繼承DataManager(如HsqlDataManager),然后修改資源文件中的DataManager名稱(或者將new的類名改一下),不需要修改代碼。

    這興許可以解釋另一個問題:不贊成使用存儲過程,而應將SQL語句嵌在代碼中(適用于Java;微軟注定.Net不會有平臺移植性,數據庫大都用Sql Server,所以寫存儲過程還是比較好的)。

    (我在我的一個Eclipse RCP項目里使用了這種模式,從Sql server 2000到Hsql,特別方便,看起來感覺也比較好)

    歡迎大家拍轉,^_^



    版權所有 羅明
    posted on 2005-10-07 00:36 羅明 閱讀(94) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
     
    主站蜘蛛池模板: 最近免费中文字幕大全免费| 国产成年无码久久久免费| 一二三四在线观看免费高清中文在线观看 | 亚洲日本国产乱码va在线观看| 久久久久久久99精品免费| 精品亚洲永久免费精品| 特级无码毛片免费视频尤物| 亚洲综合区图片小说区| 91精品免费国产高清在线| 亚洲一区二区三区写真| 国产在线98福利播放视频免费| 日韩在线观看免费完整版视频| 久久亚洲AV永久无码精品| 黄色网站软件app在线观看免费| 亚洲AV天天做在线观看| 99在线观看视频免费| 亚洲国产亚洲综合在线尤物| 国产精品无码免费视频二三区| 噜噜噜亚洲色成人网站| 国产亚洲视频在线播放| 久久国产精品萌白酱免费| 久久狠狠爱亚洲综合影院| 国产一区二区三区免费视频 | 今天免费中文字幕视频| 精品无码一区二区三区亚洲桃色 | 精品国产免费一区二区三区| 国产AV无码专区亚洲AV毛网站| 嘿嘿嘿视频免费网站在线观看| 亚洲最大的黄色网| 亚洲成a人片在线观看中文app| 国产精品成人免费一区二区 | 亚洲日韩在线第一页| 永久免费A∨片在线观看| 亚洲一区二区三区不卡在线播放| 国产精品免费电影| 国产成人免费AV在线播放 | 永久黄网站色视频免费| 国产黄色片免费看| 亚洲成a人片在线看| 激情97综合亚洲色婷婷五| 黄在线观看www免费看|