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

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

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

    椰林

    暫無

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      4 Posts :: 8 Stories :: 0 Comments :: 0 Trackbacks

    關(guān)于jdbc的1,2,3,4.

    feidei 發(fā)表于 2004-11-09
    關(guān)鍵詞:jdbc驅(qū)動

     

    關(guān)于jdbc的1,2,3,4.
    flyblue轉(zhuǎn)載自java技?[2000-11-16]


    題目中所說的\"1,2,3,4\" 實(shí)際上是指jdbc驅(qū)動的四種類型.本文將對jdbc driver
    的四種類型以及不同類型的driver適合于哪種層次的應(yīng)用做一個簡單介紹,
    如果你現(xiàn)在正準(zhǔn)備開發(fā)有關(guān)數(shù)據(jù)庫的java應(yīng)用,你也許會需要從網(wǎng)上下載相關(guān)數(shù)據(jù)庫的jdbc
    driver .在下載網(wǎng)頁上你可能會發(fā)現(xiàn)這樣的說明\"this is a type 4 drvier\"或this is type 3 driver那
    么到底應(yīng)該下載哪一個,下載后的driver是否適合我們要開發(fā)的應(yīng)用呢?還是讓我們先解釋
    一下這四種類型的具體含義吧。
    type 1:jdbc-odbc橋
    type 2:本地api驅(qū)動
    type 3:網(wǎng)絡(luò)協(xié)議驅(qū)動
    type 4:本地協(xié)議驅(qū)動

    Type 1: jdbc-odbc橋
    Jdbc-odbc 橋 是sun公司提供的,是jdk提供的的標(biāo)準(zhǔn)api. 這種類型的驅(qū)動實(shí)際是把所有
    jdbc的調(diào)用傳遞給odbc ,再由odbc調(diào)用本地數(shù)據(jù)庫驅(qū)動代碼.( 本地數(shù)據(jù)庫驅(qū)動代碼是指
    由數(shù)據(jù)庫廠商提供的數(shù)據(jù)庫操作二進(jìn)制代碼庫,例如在oracle for windows中就是oci dll 文
    件)


    jdbc-odbc橋
    |
    odbc
    |
    廠商DB代碼---------------數(shù)據(jù)庫Server



    (圖一)

    只要本地機(jī)裝有相關(guān)的odbc驅(qū)動那么采用jdbc-odbc橋幾乎可以訪問所有的數(shù)據(jù)庫,jdbc-
    odbc方法對于客戶端已經(jīng)具備odbc driver的應(yīng)用還是可行的.但是,由于jdbc-odbc先調(diào)用
    odbc再由odbc去調(diào)用本地數(shù)據(jù)庫接口訪問數(shù)據(jù)庫.所以,執(zhí)行效率比較低,對于那些大數(shù)據(jù)量
    存取的應(yīng)用是不適合的.而且,這種方法要求客戶端必須安裝odbc 驅(qū)動,所以對于基于
    internet ,intranet的應(yīng)用也是不合適的.因?yàn)?你不可能要求所有客戶都能找到odbc driver.

    Type 2: 本地Api驅(qū)動
    本地api驅(qū)動直接把jdbc調(diào)用轉(zhuǎn)變?yōu)閿?shù)據(jù)庫的標(biāo)準(zhǔn)調(diào)用再去訪問數(shù)據(jù)庫.這種方法需要本地
    數(shù)據(jù)庫驅(qū)動代碼.



    本地api驅(qū)動
    |
    廠商DB代碼---------------數(shù)據(jù)庫Server


    (圖二)
    這種驅(qū)動比起jdbc-odbc橋執(zhí)行效率大大提高了.但是,它仍然需要在客戶端加載數(shù)據(jù)庫廠商
    提供的代碼庫.這樣就不適合基于internet的應(yīng)用.并且,他的執(zhí)行效率比起3,4型的jdbc驅(qū)動
    還是不夠高.

    Type3:網(wǎng)絡(luò)協(xié)議驅(qū)動
    這種驅(qū)動實(shí)際上是根據(jù)我們熟悉的三層結(jié)構(gòu)建立的. jdbc先把對數(shù)局庫的訪問請求傳遞給網(wǎng)
    絡(luò)上的中間件服務(wù)器. 中間件服務(wù)器再把請求翻譯為符合數(shù)據(jù)庫規(guī)范的調(diào)用,再把這種調(diào)用
    傳給數(shù)據(jù)庫服務(wù)器.如果中間件服務(wù)器也是用java開法的,那么在在中間層也可以使用1,2型
    jdbc驅(qū)動程序作為訪問數(shù)據(jù)庫的方法.


    網(wǎng)絡(luò)協(xié)議驅(qū)動---------中間件服務(wù)器------------數(shù)據(jù)庫Server

    ( 圖三)


    由于這種驅(qū)動是基于server的.所以,它不需要在客戶端加載數(shù)據(jù)庫廠商提供的代碼庫.而且
    他在執(zhí)行效率和可升級性方面是比較好的.因?yàn)榇蟛糠止δ軐?shí)現(xiàn)都在server端,所以這種驅(qū)動
    可以設(shè)計的很小,可以非常快速的加載到內(nèi)存中. 但是,這種驅(qū)動在中間件層仍然需要有配置
    其它數(shù)據(jù)庫驅(qū)動程序,并且由于多了一個中間層傳遞數(shù)據(jù),它的執(zhí)行效率還不是最好.


    Type4 本地協(xié)議驅(qū)動
    這種驅(qū)動直接把jdbc調(diào)用轉(zhuǎn)換為符合相關(guān)數(shù)據(jù)庫系統(tǒng)規(guī)范的請求.由于4型驅(qū)動寫的應(yīng)用可
    以直接和數(shù)據(jù)庫服務(wù)器通訊.這種類型的驅(qū)動完全由java實(shí)現(xiàn),因此實(shí)現(xiàn)了平臺獨(dú)立性.

    本地協(xié)議驅(qū)動---------數(shù)據(jù)庫Server

    ( 圖四)

    由于這種驅(qū)動不需要先把jdbc的調(diào)用傳給odbc或本地數(shù)據(jù)庫接口或者是中間層服務(wù)器.所
    以它的執(zhí)行效率是非常高的.而且,它根本不需要在客戶端或服務(wù)器端裝載任何的軟件或驅(qū)動.
    這種驅(qū)動程序可以動態(tài)的被下載.但是對于不同的數(shù)據(jù)庫需要下載不同的驅(qū)動程序.


    以上對四種類型的jdbc驅(qū)動做了一個說明.那么它們適合那種類型的應(yīng)用開發(fā)呢?
    Jdbc-odbc橋由于它的執(zhí)行效率不高,更適合做為開發(fā)應(yīng)用時的一種過度方案,或著對于初學(xué)
    者了解jdbc編程也較適用.
    對于那些需要大數(shù)據(jù)量操作的應(yīng)用程序則應(yīng)該考慮2,3,4型驅(qū)動.在intranet方面的應(yīng)用可以
    考慮2型驅(qū)動,但是由于3,4型驅(qū)動在執(zhí)行效率上比2型驅(qū)動有著明顯的優(yōu)勢,而且目前開發(fā)
    的趨勢是使用純java.所以3,4型驅(qū)動也可以作為考慮對象.
    至于基于internet方面的應(yīng)用就只有考慮3,4型驅(qū)動了. 因?yàn)?型驅(qū)動可以把多種數(shù)據(jù)庫驅(qū)
    動都配置在中間層服務(wù)器.所以3型驅(qū)動最適合那種需要同時連接多個不同種類的數(shù)據(jù)庫,
    并且對并發(fā)連接要求高的應(yīng)用. 4型驅(qū)動則適合那些連接單一數(shù)據(jù)庫的工作組應(yīng)用.

    說了這么多,那么相關(guān)的jdbc驅(qū)動應(yīng)該在哪里下載呢?實(shí)際上各大數(shù)據(jù)庫廠商
    (oracle,sybase,db2)對jdbc多都有很好的支持(微軟例外).你可以到他們的官方站點(diǎn)去下載.
    由于微軟一直沒有開發(fā)sqlserver的jdbc驅(qū)動,所以只好用其他廠商提供的驅(qū)動.這里向大家
    推薦幾個站點(diǎn)
    http://www.idssoftware.com/jdbcdrv.html (3型)
    http://www.jturbo.com/ (4型)
    http://www.inetsoftware.de/(4型)
    特別推薦I-net Sprinta 2000 的sqlserver驅(qū)動,因?yàn)樗尿?qū)動只有47K沒有時間限制,并且是4
    型驅(qū)動.

    對于在編程時如何用JDBC建立連接,本文就不做詳細(xì)介紹了.讀者可以在jdk中找到例子,目
    錄為jdk/demo/jfc/dbdemos. 如果你下載其他廠商的驅(qū)動程序在壓縮文件中會有例子.
    如果你在applet中調(diào)用jdbc驅(qū)動訪問數(shù)據(jù)庫一定要注意web server和 數(shù)據(jù)庫 server一定
    要在同一臺機(jī)器.這是java applet 安全規(guī)范所要求的.
    posted on 2006-02-27 16:52 椰子 閱讀(558) 評論(0)  編輯  收藏 所屬分類: 技術(shù)

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 久久精品女人天堂AV免费观看| 日韩av无码成人无码免费| 国产gav成人免费播放视频| 亚洲看片无码在线视频| 在线看片v免费观看视频777| 亚洲午夜电影在线观看| 久久er国产精品免费观看2| 伊人久久大香线蕉亚洲| 国产一级淫片a免费播放口| 国产亚洲婷婷香蕉久久精品 | 国产成人无码a区在线观看视频免费| 一级做a爱过程免费视| 亚洲精品天堂成人片?V在线播放| 亚洲AV永久精品爱情岛论坛| 久久精品视频免费看| 中文字幕亚洲精品资源网| 久久久久久久免费视频| 日本亚洲精品色婷婷在线影院| 一级黄色免费大片| 亚洲欧洲日产国码无码网站| 两个人看的www免费视频| 久久丫精品国产亚洲av| 国产香蕉九九久久精品免费| 成人亚洲国产精品久久| 国产亚洲精久久久久久无码77777 国产亚洲精品成人AA片新蒲金 | 亚洲激情校园春色| 欧美最猛性xxxxx免费| 男人j进女人p免费视频| 亚洲麻豆精品果冻传媒| 中文字幕人成无码免费视频| 怡红院亚洲红怡院在线观看| 国产亚洲精品观看91在线| 国产桃色在线成免费视频| 国产一区二区三区亚洲综合 | 日韩一品在线播放视频一品免费| 亚洲国产二区三区久久| 在线免费观看中文字幕| 国产一级一毛免费黄片| 亚洲av日韩av综合| 黑人大战亚洲人精品一区 | 永久看日本大片免费35分钟|