文章詳情頁
關(guān)于jdbc的1,2,3,4.
瀏覽:21日期:2024-06-24 09:10:26
內(nèi)容: 關(guān)于jdbc的1,2,3,4.flyblue轉(zhuǎn)載自java技?[2000-11-16]題目中所說的'1,2,3,4' 實(shí)際上是指jdbc驅(qū)動(dòng)的四種類型.本文將對(duì)jdbc driver 的四種類型以及不同類型的driver適合于哪種層次的應(yīng)用做一個(gè)簡(jiǎn)單介紹, 如果你現(xiàn)在正準(zhǔn)備開發(fā)有關(guān)數(shù)據(jù)庫的java應(yīng)用,你也許會(huì)需要從網(wǎng)上下載相關(guān)數(shù)據(jù)庫的jdbc driver .在下載網(wǎng)頁上你可能會(huì)發(fā)現(xiàn)這樣的說明'this is a type 4 drvier'或this is type 3 driver那 么到底應(yīng)該下載哪一個(gè),下載后的driver是否適合我們要開發(fā)的應(yīng)用呢?還是讓我們先解釋 一下這四種類型的具體含義吧。 type 1:jdbc-odbc橋 type 2:本地api驅(qū)動(dòng) type 3:網(wǎng)絡(luò)協(xié)議驅(qū)動(dòng) type 4:本地協(xié)議驅(qū)動(dòng) Type 1: jdbc-odbc橋 Jdbc-odbc 橋 是sun公司提供的,是jdk提供的的標(biāo)準(zhǔn)api. 這種類型的驅(qū)動(dòng)實(shí)際是把所有 jdbc的調(diào)用傳遞給odbc ,再由odbc調(diào)用本地?cái)?shù)據(jù)庫驅(qū)動(dòng)代碼.( 本地?cái)?shù)據(jù)庫驅(qū)動(dòng)代碼是指 由數(shù)據(jù)庫廠商提供的數(shù)據(jù)庫操作二進(jìn)制代碼庫,例如在oracle for windows中就是oci dll 文 件) jdbc-odbc橋 | odbc | 廠商DB代碼---------------數(shù)據(jù)庫Server (圖一) 只要本地機(jī)裝有相關(guān)的odbc驅(qū)動(dòng)那么采用jdbc-odbc橋幾乎可以訪問所有的數(shù)據(jù)庫,jdbc- odbc方法對(duì)于客戶端已經(jīng)具備odbc driver的應(yīng)用還是可行的.但是,由于jdbc-odbc先調(diào)用 odbc再由odbc去調(diào)用本地?cái)?shù)據(jù)庫接口訪問數(shù)據(jù)庫.所以,執(zhí)行效率比較低,對(duì)于那些大數(shù)據(jù)量 存取的應(yīng)用是不適合的.而且,這種方法要求客戶端必須安裝odbc 驅(qū)動(dòng),所以對(duì)于基于 internet ,intranet的應(yīng)用也是不合適的.因?yàn)?你不可能要求所有客戶都能找到odbc driver. Type 2: 本地Api驅(qū)動(dòng) 本地api驅(qū)動(dòng)直接把jdbc調(diào)用轉(zhuǎn)變?yōu)閿?shù)據(jù)庫的標(biāo)準(zhǔn)調(diào)用再去訪問數(shù)據(jù)庫.這種方法需要本地 數(shù)據(jù)庫驅(qū)動(dòng)代碼. 本地api驅(qū)動(dòng) | 廠商DB代碼---------------數(shù)據(jù)庫Server (圖二) 這種驅(qū)動(dòng)比起jdbc-odbc橋執(zhí)行效率大大提高了.但是,它仍然需要在客戶端加載數(shù)據(jù)庫廠商 提供的代碼庫.這樣就不適合基于internet的應(yīng)用.并且,他的執(zhí)行效率比起3,4型的jdbc驅(qū)動(dòng) 還是不夠高. Type3:網(wǎng)絡(luò)協(xié)議驅(qū)動(dòng) 這種驅(qū)動(dòng)實(shí)際上是根據(jù)我們熟悉的三層結(jié)構(gòu)建立的. jdbc先把對(duì)數(shù)局庫的訪問請(qǐng)求傳遞給網(wǎng) 絡(luò)上的中間件服務(wù)器. 中間件服務(wù)器再把請(qǐng)求翻譯為符合數(shù)據(jù)庫規(guī)范的調(diào)用,再把這種調(diào)用 傳給數(shù)據(jù)庫服務(wù)器.如果中間件服務(wù)器也是用java開法的,那么在在中間層也可以使用1,2型 jdbc驅(qū)動(dòng)程序作為訪問數(shù)據(jù)庫的方法. 網(wǎng)絡(luò)協(xié)議驅(qū)動(dòng)---------中間件服務(wù)器------------數(shù)據(jù)庫Server ( 圖三) 由于這種驅(qū)動(dòng)是基于server的.所以,它不需要在客戶端加載數(shù)據(jù)庫廠商提供的代碼庫.而且 他在執(zhí)行效率和可升級(jí)性方面是比較好的.因?yàn)榇蟛糠止δ軐?shí)現(xiàn)都在server端,所以這種驅(qū)動(dòng) 可以設(shè)計(jì)的很小,可以非常快速的加載到內(nèi)存中. 但是,這種驅(qū)動(dòng)在中間件層仍然需要有配置 其它數(shù)據(jù)庫驅(qū)動(dòng)程序,并且由于多了一個(gè)中間層傳遞數(shù)據(jù),它的執(zhí)行效率還不是最好. Type4 本地協(xié)議驅(qū)動(dòng) 這種驅(qū)動(dòng)直接把jdbc調(diào)用轉(zhuǎn)換為符合相關(guān)數(shù)據(jù)庫系統(tǒng)規(guī)范的請(qǐng)求.由于4型驅(qū)動(dòng)寫的應(yīng)用可 以直接和數(shù)據(jù)庫服務(wù)器通訊.這種類型的驅(qū)動(dòng)完全由java實(shí)現(xiàn),因此實(shí)現(xiàn)了平臺(tái)獨(dú)立性. 本地協(xié)議驅(qū)動(dòng)---------數(shù)據(jù)庫Server ( 圖四) 由于這種驅(qū)動(dòng)不需要先把jdbc的調(diào)用傳給odbc或本地?cái)?shù)據(jù)庫接口或者是中間層服務(wù)器.所 以它的執(zhí)行效率是非常高的.而且,它根本不需要在客戶端或服務(wù)器端裝載任何的軟件或驅(qū)動(dòng). 這種驅(qū)動(dòng)程序可以動(dòng)態(tài)的被下載.但是對(duì)于不同的數(shù)據(jù)庫需要下載不同的驅(qū)動(dòng)程序. 以上對(duì)四種類型的jdbc驅(qū)動(dòng)做了一個(gè)說明.那么它們適合那種類型的應(yīng)用開發(fā)呢? Jdbc-odbc橋由于它的執(zhí)行效率不高,更適合做為開發(fā)應(yīng)用時(shí)的一種過度方案,或著對(duì)于初學(xué) 者了解jdbc編程也較適用. 對(duì)于那些需要大數(shù)據(jù)量操作的應(yīng)用程序則應(yīng)該考慮2,3,4型驅(qū)動(dòng).在intranet方面的應(yīng)用可以 考慮2型驅(qū)動(dòng),但是由于3,4型驅(qū)動(dòng)在執(zhí)行效率上比2型驅(qū)動(dòng)有著明顯的優(yōu)勢(shì),而且目前開發(fā) 的趨勢(shì)是使用純java.所以3,4型驅(qū)動(dòng)也可以作為考慮對(duì)象. 至于基于internet方面的應(yīng)用就只有考慮3,4型驅(qū)動(dòng)了. 因?yàn)?型驅(qū)動(dòng)可以把多種數(shù)據(jù)庫驅(qū) 動(dòng)都配置在中間層服務(wù)器.所以3型驅(qū)動(dòng)最適合那種需要同時(shí)連接多個(gè)不同種類的數(shù)據(jù)庫, 并且對(duì)并發(fā)連接要求高的應(yīng)用. 4型驅(qū)動(dòng)則適合那些連接單一數(shù)據(jù)庫的工作組應(yīng)用. 說了這么多,那么相關(guān)的jdbc驅(qū)動(dòng)應(yīng)該在哪里下載呢?實(shí)際上各大數(shù)據(jù)庫廠商 (oracle,sybase,db2)對(duì)jdbc多都有很好的支持(微軟例外).你可以到他們的官方站點(diǎn)去下載. 由于微軟一直沒有開發(fā)sqlserver的jdbc驅(qū)動(dòng),所以只好用其他廠商提供的驅(qū)動(dòng).這里向大家 推薦幾個(gè)站點(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ū)動(dòng),因?yàn)樗尿?qū)動(dòng)只有47K沒有時(shí)間限制,并且是4 型驅(qū)動(dòng). 對(duì)于在編程時(shí)如何用JDBC建立連接,本文就不做詳細(xì)介紹了.讀者可以在jdk中找到例子,目 錄為jdk/demo/jfc/dbdemos. 如果你下載其他廠商的驅(qū)動(dòng)程序在壓縮文件中會(huì)有例子. 如果你在applet中調(diào)用jdbc驅(qū)動(dòng)訪問數(shù)據(jù)庫一定要注意web server和 數(shù)據(jù)庫 server一定 要在同一臺(tái)機(jī)器.這是java applet 安全規(guī)范所要求的. Java, java, J2SE, j2se, J2EE, j2ee, J2ME, j2me, ejb, ejb3, JBOSS, jboss, spring, hibernate, jdo, struts, webwork, ajax, AJAX, mysql, MySQL, Oracle, Weblogic, Websphere, scjp, scjd
標(biāo)簽:
JDBC
相關(guān)文章:
1. 如果我是國王:關(guān)于解決 Java 編程語言線程問題的建議2. 關(guān)于PHP中的Class的幾點(diǎn)個(gè)人看法3. 關(guān)于WPF WriteableBitmap類直接操作像素點(diǎn)的問題4. 關(guān)于Ajax的封裝詳解5. 關(guān)于Spring的@Transaction導(dǎo)致數(shù)據(jù)庫回滾全部生效問題(又刪庫跑路)6. 關(guān)于Android Studio安裝完后activity_main.xml前幾行報(bào)錯(cuò)的解決建議7. 淺析關(guān)于Keras的安裝(pycharm)和初步理解8. 微軟發(fā)布新版本JDBC驅(qū)動(dòng)9. 關(guān)于Java中String創(chuàng)建的字符串對(duì)象內(nèi)存分配測(cè)試問題10. 關(guān)于idea-web.xml版本過低怎么生成新的(web.xml報(bào)錯(cuò))問題
排行榜
