主頁(yè) > 知識(shí)庫(kù) > JDBCTM 指南:入門

JDBCTM 指南:入門

熱門標(biāo)簽:四川電信外呼系統(tǒng)靠譜嗎 長(zhǎng)春回?fù)芡夂粝到y(tǒng)廠家 珠海銷售外呼系統(tǒng)運(yùn)營(yíng)商 地圖標(biāo)注制作道路 外呼系統(tǒng)啥意思 廣州三五防封電銷卡 電銷外呼系統(tǒng) 排行榜 地圖標(biāo)注創(chuàng)業(yè)項(xiàng)目入駐 山東智能云外呼管理系統(tǒng)
本簡(jiǎn)介是從《JDBCTM Database Access from JavaTM: A Tutorial and Annotated Reference 》這本書中摘引來(lái)的。
JavaSoft 目前正在準(zhǔn)備這本書。這是一本教程,同時(shí)也是 JDBC 的重要參考手冊(cè),它將作為 Java 系列的組成部份在 1997 年春季由 Addison-Wesley 出版公司出版。


1.1 什么是 JDBCTM?
JDBCTM 是一種用于執(zhí)行 SQL 語(yǔ)句的 JavaTM API(有意思的是,JDBC 本身是個(gè)商標(biāo)名而不是一個(gè)縮寫字;然而,JDBC 常被認(rèn)為是代表 “Java 數(shù)據(jù)庫(kù)連接 (Java Database Connectivity)”)。它由一組用 Java 編程語(yǔ)言編寫的類和接口組成。JDBC 為工具/數(shù)據(jù)庫(kù)開發(fā)人員提供了一個(gè)標(biāo)準(zhǔn)的 API,使他們能夠用純 Java API 來(lái)編寫數(shù)據(jù)庫(kù)應(yīng)用程序。

有了 JDBC,向各種關(guān)系數(shù)據(jù)庫(kù)發(fā)送 SQL 語(yǔ)句就是一件很容易的事。換言之,有了 JDBC API,就不必為訪問 Sybase 數(shù)據(jù)庫(kù)專門寫一個(gè)程序,為訪問 Oracle 數(shù)據(jù)庫(kù)又專門寫一個(gè)程序,為訪問 Informix 數(shù)據(jù)庫(kù)又寫另一個(gè)程序,等等。您只需用 JDBC API 寫一個(gè)程序就夠了,它可向相應(yīng)數(shù)據(jù)庫(kù)發(fā)送 SQL 語(yǔ)句。而且,使用 Java 編程語(yǔ)言編寫的應(yīng)用程序,就無(wú)須去憂慮要為不同的平臺(tái)編寫不同的應(yīng)用程序。將 Java 和 JDBC 結(jié)合起來(lái)將使程序員只須寫一遍程序就可讓它在任何平臺(tái)上運(yùn)行。

Java 具有堅(jiān)固、安全、易于使用、易于理解和可從網(wǎng)絡(luò)上自動(dòng)下載等特性,是編寫數(shù)據(jù)庫(kù)應(yīng)用程序的杰出語(yǔ)言。所需要的只是 Java 應(yīng)用程序與各種不同數(shù)據(jù)庫(kù)之間進(jìn)行對(duì)話的方法。而 JDBC 正是作為此種用途的機(jī)制。

JDBC 擴(kuò)展了 Java 的功能。例如,用 Java 和 JDBC API 可以發(fā)布含有 applet 的網(wǎng)頁(yè),而該 applet 使用的信息可能來(lái)自遠(yuǎn)程數(shù)據(jù)庫(kù)。企業(yè)也可以用 JDBC 通過 Intranet 將所有職員連到一個(gè)或多個(gè)內(nèi)部數(shù)據(jù)庫(kù)中(即使這些職員所用的計(jì)算機(jī)
有 Windows、 Macintosh 和 UNIX 等各種不同的操作系統(tǒng))。隨著越來(lái)越多的程序員開始使用 Java 編程語(yǔ)言,對(duì)從 Java中便捷地訪問數(shù)據(jù)庫(kù)的要求也在日益增加。

MIS 管理員們都喜歡 Java 和 JDBC 的結(jié)合,因?yàn)樗剐畔鞑プ兊萌菀缀徒?jīng)濟(jì)。企業(yè)可繼續(xù)使用它們安裝好的數(shù)據(jù)庫(kù),并能便捷地存取信息,即使這些信息是儲(chǔ)存在不同數(shù)據(jù)庫(kù)管理系統(tǒng)上。新程序的開發(fā)期很短。安裝和版本控制將大為簡(jiǎn)化。程序員可只編寫一遍應(yīng)用程序或只更新一次,然后將它放到服務(wù)器上,隨后任何人就都可得到最新版本的應(yīng)用程序。對(duì)于商務(wù)上的銷售信息服務(wù), Java 和 JDBC 可為外部客戶提供獲取信息更新的更好方法。


1.1.1 JDBC 的用途是什么?
簡(jiǎn)單地說(shuō),JDBC 可做三件事:



與數(shù)據(jù)庫(kù)建立連接,
發(fā)送 SQL 語(yǔ)句,
處理結(jié)果。


下列代碼段給出了以上三步的基本示例:

Connection con = DriverManager.getConnection (
"jdbc:odbc:wombat", "login", "password");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1");
while (rs.next()) {
int x = rs.getInt("a");
String s = rs.getString("b");
float f = rs.getFloat("c");
}


1.1.2 JDBC 是一種低級(jí) API ,是高級(jí) API 的基礎(chǔ)
JDBC 是個(gè)“低級(jí)”接口,也就是說(shuō),它用于直接調(diào)用 SQL 命令。在這方面它的功能極佳,并比其它的數(shù)據(jù)庫(kù)連接 API 易于使用,但它同時(shí)也被設(shè)計(jì)為一種基礎(chǔ)接口,在它之上可以建立高級(jí)接口和工具。高級(jí)接口是“對(duì)用戶友好的”接口,它使用的是一種更易理解和更為方便的 API,這種 API 在幕后被轉(zhuǎn)換為諸如 JDBC 這樣的低級(jí)接口。在編寫本文時(shí),正在開發(fā)兩種基于 JDBC 的高級(jí) API:


一種用于 Java 的嵌入式 SQL。至少已經(jīng)有一個(gè)提供者計(jì)劃編寫它。DBMS 實(shí)現(xiàn) SQL:一種專門設(shè)計(jì)來(lái)與數(shù)據(jù)庫(kù)聯(lián)合使用的語(yǔ)言。JDBC 要求 SQL 語(yǔ)句必須作為 String 傳給 Java 方法。相反,嵌入式 SQL 預(yù)處理器允許程序員將 SQL 語(yǔ)句直接與Java 混在一起使用。例如,可在 SQL 語(yǔ)句中使用 Java 變量,用以接受或提供 SQL 值。然后,嵌入式 SQL 預(yù)處理器將通過 JDBC 調(diào)用把這種 Java/SQL 的混合物轉(zhuǎn)換為 Java。
關(guān)系數(shù)據(jù)庫(kù)表到 Java 類的直接映射。JavaSoft 和其它提供者都聲稱要實(shí)現(xiàn)該 API。在這種“對(duì)象/關(guān)系”映射中,表中的每行對(duì)應(yīng)于類的一個(gè)實(shí)例,而每列的值對(duì)應(yīng)于該實(shí)例的一個(gè)屬性。于是,程序員可直接對(duì) Java 對(duì)象進(jìn)行操作;存取數(shù)據(jù)所
需的 SQL 調(diào)用將在“掩蓋下”自動(dòng)生成。此外還可提供更復(fù)雜的映射,例如將多個(gè)表中的行結(jié)合進(jìn)一個(gè) Java 類中。
隨著人們對(duì) JDBC 的興趣日益增漲,越來(lái)越多的開發(fā)人員一直在使用基于 JDBC 的工具,以使程序的編寫更加容易。程序員也一直在編寫力圖使最終用戶對(duì)數(shù)據(jù)庫(kù)的訪問變得更為簡(jiǎn)單的應(yīng)用程序。例如,應(yīng)用程序可提供一個(gè)選擇數(shù)據(jù)庫(kù)任務(wù)的菜單。
任務(wù)被選定后,應(yīng)用程序?qū)⒔o出提示及空白供填寫執(zhí)行選定任務(wù)所需的信息。所需信息輸入后,應(yīng)用程序?qū)⒆詣?dòng)調(diào)用所需的SQL 命令。在這樣一種程序的協(xié)助下,即使用戶根本不懂 SQL 的語(yǔ)法,也可以執(zhí)行數(shù)據(jù)庫(kù)任務(wù)。


1.1.3 JDBC 與 ODBC 和其它 API 的比較
目前,Microsoft 的 ODBC(開放式數(shù)據(jù)庫(kù)連接)API 可能是使用最廣的、用于訪問關(guān)系數(shù)據(jù)庫(kù)的編程接口。它能在幾乎所有平臺(tái)上連接幾乎所有的數(shù)據(jù)庫(kù)。為什么 Java 不使用 ODBC?

對(duì)這個(gè)問題的回答是:Java 可以使用 ODBC,但最好是在 JDBC 的幫助下以 JDBC-ODBC 橋的形式使用,這一點(diǎn)我們稍后再說(shuō)?,F(xiàn)在的問題已變成:“為什么需要 JDBC”? 回答如下:


ODBC 不適合直接在 Java 中使用,因?yàn)樗褂?C 語(yǔ)言接口。從 Java 調(diào)用本地 C 代碼在安全性、實(shí)現(xiàn)、堅(jiān)固性和程序的自動(dòng)移植性方面都有許多缺點(diǎn)。
從 ODBC C API 到 Java API 的字面翻譯是不可取的。例如,Java 沒有指針,而 ODBC 卻對(duì)指針用得很廣泛(包括很容易出錯(cuò)的指針 "void *")。您可以將 JDBC 想象成被轉(zhuǎn)換為面向?qū)ο蠼涌诘?ODBC,而面向?qū)ο蟮慕涌趯?duì) Java 程序員來(lái)說(shuō)較
易于接收。
ODBC 很難學(xué)。它把簡(jiǎn)單和高級(jí)功能混在一起,而且即使對(duì)于簡(jiǎn)單的查詢,其選項(xiàng)也極為復(fù)雜。相反,JDBC 盡量保證簡(jiǎn)單功能的簡(jiǎn)便性,而同時(shí)在必要時(shí)允許使用高級(jí)功能。
啟用“純 Java ”機(jī)制需要象 JDBC 這樣的 Java API。如果使用 ODBC,就必須手動(dòng)地將 ODBC 驅(qū)動(dòng)程序管理器和驅(qū)動(dòng)程序安裝在每臺(tái)客戶機(jī)上。如果完全用 Java 編寫 JDBC 驅(qū)動(dòng)程序則 JDBC 代碼在所有 Java 平臺(tái)上(從網(wǎng)絡(luò)計(jì)算機(jī)到大型機(jī))
都可以自動(dòng)安裝、移植并保證安全性。
總之,JDBC API 對(duì)于基本的 SQL 抽象和概念是一種自然的 Java 接口。它建立在 ODBC 上而不是從零開始。因此,熟悉 ODBC 的程序員將發(fā)現(xiàn) JDBC 很容易使用。JDBC 保留了 ODBC 的基本設(shè)計(jì)特征;事實(shí)上,兩種接口都基于 X/Open SQL CLI
(調(diào)用級(jí)接口)。它們之間最大的區(qū)別在于:JDBC 以 Java 風(fēng)格與優(yōu)點(diǎn)為基礎(chǔ)并進(jìn)行優(yōu)化,因此更加易于使用。

最近,Microsoft 又引進(jìn)了 ODBC 之外的新 API: RDO、 ADO 和 OLE DB。這些設(shè)計(jì)在許多方面與 JDBC 是相同的,即它們都是面向?qū)ο蟮臄?shù)據(jù)庫(kù)接口且基于可在 ODBC 上實(shí)現(xiàn)的類。但在這些接口中,我們未看見有特別的功能使我們要轉(zhuǎn)而選擇它
們來(lái)替代 ODBC,尤其是在 ODBC 驅(qū)動(dòng)程序已建立起較為完善的市場(chǎng)的情況下。它們最多也就是在 ODBC 上加了一種裝飾而已。這并不是說(shuō) JDBC 不需要從其最初的版本再發(fā)展了;然而,我們覺得大部份的新功能應(yīng)歸入諸如前一節(jié)中所述的對(duì)象/關(guān)系映射和嵌入式 SQL 這樣的高級(jí) API。


1.1.4 兩層模型和三層模型
JDBC API 既支持?jǐn)?shù)據(jù)庫(kù)訪問的兩層模型,同時(shí)也支持三層模型。

在兩層模型中,Java applet 或應(yīng)用程序?qū)⒅苯优c數(shù)據(jù)庫(kù)進(jìn)行對(duì)話。這將需要一個(gè) JDBC 驅(qū)動(dòng)程序來(lái)與所訪問的特定數(shù)據(jù)庫(kù)管理系統(tǒng)進(jìn)行通訊。用戶的 SQL 語(yǔ)句被送往數(shù)據(jù)庫(kù)中,而其結(jié)果將被送回給用戶。數(shù)據(jù)庫(kù)可以位于另一臺(tái)計(jì)算機(jī)上,用戶通過網(wǎng)絡(luò)連接到上面。這就叫做客戶機(jī)/服務(wù)器配置,其中用戶的計(jì)算機(jī)為客戶機(jī),提供數(shù)據(jù)庫(kù)的計(jì)算機(jī)為服務(wù)器。網(wǎng)絡(luò)可以是 Intranet(它可將公司職員連接起來(lái)),也可以是 Internet。





在三層模型中,命令先是被發(fā)送到服務(wù)的“中間層”,然后由它將 SQL 語(yǔ)句發(fā)送給數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)對(duì) SQL 語(yǔ)句進(jìn)行處理并將結(jié)果送回到中間層,中間層再將結(jié)果送回給用戶。MIS 主管們都發(fā)現(xiàn)三層模型很吸引人,因?yàn)榭捎弥虚g層來(lái)控制對(duì)公司數(shù)據(jù)的訪問和可作的的更新的種類。中間層的另一個(gè)好處是,用戶可以利用易于使用的高級(jí) API,而中間層將把它轉(zhuǎn)換為相應(yīng)的低級(jí)調(diào)用。最后,許多情況下三層結(jié)構(gòu)可提供一些性能上的好處。




到目前為止,中間層通常都用 C 或 C++ 這類語(yǔ)言來(lái)編寫,這些語(yǔ)言執(zhí)行速度較快。然而,隨著最優(yōu)化編譯器(它把 Java字節(jié)代碼轉(zhuǎn)換為高效的特定于機(jī)器的代碼)的引入,用 Java 來(lái)實(shí)現(xiàn)中間層將變得越來(lái)越實(shí)際。這將是一個(gè)很大的進(jìn)步,它使人們可以充分利用 Java 的諸多優(yōu)點(diǎn)(如堅(jiān)固、多線程和安全等特征)。JDBC 對(duì)于從 Java 的中間層來(lái)訪問數(shù)據(jù)庫(kù)非常重要。


1.1.5 SQL 的一致性
結(jié)構(gòu)化查詢語(yǔ)言 (SQL) 是訪問關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)語(yǔ)言。困難之處在于:雖然大多數(shù)的 DBMS (數(shù)據(jù)庫(kù)管理系統(tǒng))對(duì)其基本功能都使用了標(biāo)準(zhǔn)形式的 SQL,但它們卻不符合最近為更高級(jí)的功能定義的標(biāo)準(zhǔn) SQL 語(yǔ)法或語(yǔ)義。例如,并非所有的數(shù)據(jù)庫(kù)都支持儲(chǔ)存程序或外部連接,那些支持這一功能的數(shù)據(jù)庫(kù)又相互不一致。人們希望 SQL 中真正標(biāo)準(zhǔn)的那部份能夠進(jìn)行擴(kuò)展以包括越來(lái)越多的功能。但同時(shí) JDBC API 又必須支持現(xiàn)有的 SQL。

JDBC API 解決這個(gè)問題的一種方法是允許將任何查詢字符串一直傳到所涉及的 DBMS 驅(qū)動(dòng)程序上。這意味著應(yīng)用程序可以使用任意多的 SQL 功能,但它必須冒這樣的風(fēng)險(xiǎn):有可能在某些 DBMS 上出錯(cuò)。事實(shí)上,應(yīng)用程序查詢甚至不一定要是 SQL,或者說(shuō)它可以是個(gè)為特定的 DBMS 設(shè)計(jì)的 SQL 的專用派生物(例如,文檔或圖象查詢)。

JDBC 處理 SQL 一致性問題的第二種方法是提供 ODBC 風(fēng)格的轉(zhuǎn)義子句。這將在 4.1.5 節(jié)“語(yǔ)句對(duì)象中的 SQL 轉(zhuǎn)義語(yǔ)法”中討論。

轉(zhuǎn)義語(yǔ)法為幾個(gè)常見的 SQL 分歧提供了一種標(biāo)準(zhǔn)的 JDBC 語(yǔ)法。例如,對(duì)日期文字和已儲(chǔ)存過程的調(diào)用都有轉(zhuǎn)義語(yǔ)法。

對(duì)于復(fù)雜的應(yīng)用程序,JDBC 用第三種方法來(lái)處理 SQL 的一致性問題。它利用 DatabaseMetaData 接口來(lái)提供關(guān)于 DBMS 的描述性信息,從而使應(yīng)用程序能適應(yīng)每個(gè) DBMS 的要求和功能。

由于 JDBC API 將用作開發(fā)高級(jí)數(shù)據(jù)庫(kù)訪問工具和 API 的基礎(chǔ) API,因此它還必須注意其所有上層建筑的一致性?!胺?JDBC 標(biāo)準(zhǔn)TM" 代表用戶可依賴的 JDBC 功能的標(biāo)準(zhǔn)級(jí)別。要使用這一說(shuō)明,驅(qū)動(dòng)程序至少必須支持 ANSI SQL-2 Entry Level(ANSI SQL-2 代表美國(guó)國(guó)家標(biāo)準(zhǔn)局 1992 年所采用的標(biāo)準(zhǔn)。Entry Level 代表 SQL 功能的特定清單)。驅(qū)動(dòng)程序開發(fā)人員可用 JDBC API 所帶的測(cè)試工具包來(lái)確定他們的驅(qū)動(dòng)程序是否符合這些標(biāo)準(zhǔn)。

“符合 JDBC 標(biāo)準(zhǔn)TM” 表示提供者的 JDBC 實(shí)現(xiàn)已經(jīng)通過了 JavaSoft 提供的一致性測(cè)試。這些一致性測(cè)試將檢查 JDBC API 中定義的所有類和方法是否都存在,并盡可能地檢查程序是否具有 SQL Entry Level 功能。當(dāng)然,這些測(cè)試并不完全,而且 JavaSoft 目前也無(wú)意對(duì)各提供者的實(shí)現(xiàn)進(jìn)行標(biāo)級(jí)。但這種一致性定義的確可對(duì) JDBC 實(shí)現(xiàn)提供一定的可信度。隨著越來(lái)越多的數(shù)據(jù)庫(kù)提供者、連接提供者、Internet 提供者和應(yīng)用程序編程員對(duì) JDBC API 的接受,JDBC 也正迅速成為 Java 數(shù)據(jù)庫(kù)訪問的標(biāo)準(zhǔn)。


1.2 JDBC 產(chǎn)品
在編寫本文時(shí),有幾個(gè)基于 JDBC 的產(chǎn)品已開發(fā)完畢或正在開發(fā)中。當(dāng)然,本節(jié)中的信息將很快成為過時(shí)信息。因此,有關(guān)最新的信息,請(qǐng)查閱 JDBC 的網(wǎng)站,可通過從以下 URL 開始瀏覽找到:

http://java.sun.com/products/jdbc


1.2.1 JavaSoft 框架
JavaSoft 提供三種 JDBC 產(chǎn)品組件,它們是 Java 開發(fā)工具包 (JDK) 的組成部份:


JDBC 驅(qū)動(dòng)程序管理器,


JDBC 驅(qū)動(dòng)程序測(cè)試工具包,和


JDBC-ODBC 橋。


JDBC 驅(qū)動(dòng)程序管理器是 JDBC 體系結(jié)構(gòu)的支柱。它實(shí)際上很小,也很簡(jiǎn)單;其主要作用是把 Java 應(yīng)用程序連接到正確的JDBC 驅(qū)動(dòng)程序上,然后即退出。

JDBC 驅(qū)動(dòng)程序測(cè)試工具包為使 JDBC 驅(qū)動(dòng)程序運(yùn)行您的程序提供一定的可信度。只有通過 JDBC 驅(qū)動(dòng)程序測(cè)試包的驅(qū)動(dòng)程序才被認(rèn)為是符合 JDBC 標(biāo)準(zhǔn)TM 的。

JDBC-ODBC 橋使 ODBC 驅(qū)動(dòng)程序可被用作 JDBC 驅(qū)動(dòng)程序。它的實(shí)現(xiàn)為 JDBC 的快速發(fā)展提供了一條途徑,其長(zhǎng)遠(yuǎn)目標(biāo)提供一種訪問某些不常見的 DBMS(如果對(duì)這些不常見的 DBMS 未實(shí)現(xiàn) JDBC) 的方法。





1.2.2 JDBC 驅(qū)動(dòng)程序的類型
我們目前所知曉的 JDBC 驅(qū)動(dòng)程序可分為以下四個(gè)種類:


JDBC-ODBC 橋加 ODBC 驅(qū)動(dòng)程序:JavaSoft 橋產(chǎn)品利用 ODBC 驅(qū)動(dòng)程序提供 JDBC 訪問。注意,必須將 ODBC 二進(jìn)制代碼(許多情況下還包括數(shù)據(jù)庫(kù)客戶機(jī)代碼)加載到使用該驅(qū)動(dòng)程序的每個(gè)客戶機(jī)上。因此,這種類型的驅(qū)動(dòng)程序最適合于企業(yè)網(wǎng)(這種網(wǎng)絡(luò)上客戶機(jī)的安裝不是主要問題),或者是用 Java 編寫的三層結(jié)構(gòu)的應(yīng)用程序服務(wù)器代碼。 本地 API - 部份用 Java 來(lái)編寫的驅(qū)動(dòng)程序: 這種類型的驅(qū)動(dòng)程序把客戶機(jī) API 上的 JDBC 調(diào)用轉(zhuǎn)換為 Oracle、 Sybase、Informix、DB2 或其它 DBMS 的調(diào)用。注意,象橋驅(qū)動(dòng)程序一樣,這種類型的驅(qū)動(dòng)程序要求將某些二進(jìn)制代碼加載到每臺(tái)客戶機(jī)上。
JDBC 網(wǎng)絡(luò)純 Java 驅(qū)動(dòng)程序:這種驅(qū)動(dòng)程序?qū)?JDBC 轉(zhuǎn)換為與 DBMS 無(wú)關(guān)的網(wǎng)絡(luò)協(xié)議,之后這種協(xié)議又被某個(gè)服務(wù)器轉(zhuǎn)換為一種 DBMS 協(xié)議。這種網(wǎng)絡(luò)服務(wù)器中間件能夠?qū)⑺募?Java 客戶機(jī)連接到多種不同的數(shù)據(jù)庫(kù)上。所用的具體協(xié)議取決于提供者。通常,這是最為靈活的 JDBC 驅(qū)動(dòng)程序。有可能所有這種解決方案的提供者都提供適合于 Intranet 用的產(chǎn)品。為了使這些產(chǎn)品也支持 Internet 訪問,它們必須處理 Web 所提出的安全性、通過防火墻的訪問等方面的額外要求。幾家提供者正將 JDBC 驅(qū)動(dòng)程序加到他們現(xiàn)有的數(shù)據(jù)庫(kù)中間件產(chǎn)品中。
本地協(xié)議純 Java 驅(qū)動(dòng)程序:這種類型的驅(qū)動(dòng)程序?qū)?JDBC 調(diào)用直接轉(zhuǎn)換為 DBMS 所使用的網(wǎng)絡(luò)協(xié)議。這將允許從客戶機(jī)機(jī)器上直接調(diào)用 DBMS 服務(wù)器,是 Intranet 訪問的一個(gè)很實(shí)用的解決方法。由于許多這樣的協(xié)議都是專用的,因此數(shù)據(jù)庫(kù)提供者自己將是主要來(lái)源,有幾家提供者已在著手做這件事了。
最后,我們預(yù)計(jì)第 3、4 類驅(qū)動(dòng)程序?qū)⒊蔀閺?JDBC 訪問數(shù)據(jù)庫(kù)的首選方法。第 1、2 類驅(qū)動(dòng)程序在直接的純 Java 驅(qū)動(dòng)程序還沒有上市前將會(huì)作為過渡方案來(lái)使用。對(duì)第 1、2 類驅(qū)動(dòng)程序可能會(huì)有一些變種(下表中未列出),這些變種要求有連接器,但通常這些是更加不可取的解決方案。第 3、4 類驅(qū)動(dòng)程序提供了 Java 的所有優(yōu)點(diǎn),包括自動(dòng)安裝(例如,通過使用 JDBC 驅(qū)動(dòng)程序的 applet applet來(lái)下載該驅(qū)動(dòng)程序)。

下表顯示了這 4 種類型的驅(qū)動(dòng)程序及其屬性:


驅(qū)動(dòng)程序種類 純 JAVA? 網(wǎng)絡(luò)協(xié)議
1 - JDBC-OCBC 橋 非 直接
2 - 基于本地 API 的 非 直接
3 - JDBC 網(wǎng)絡(luò)的 是 要求連接器
4 - 基于本地協(xié)議的 是 直接



1.2.3 JDBC 驅(qū)動(dòng)程序的獲取
在編寫本文時(shí),已有幾十個(gè)屬于種類的驅(qū)動(dòng)程序,即可與 Javasoft 橋聯(lián)合使用的 1: ODBC 驅(qū)動(dòng)程序的驅(qū)動(dòng)程序。有大約十多個(gè)屬于種類 2 的驅(qū)動(dòng)程序是以 DBMS 的本地 API 為基礎(chǔ)編寫的。只有幾個(gè)屬于種類 3 的驅(qū)動(dòng)程序。目前至少有 2 個(gè)屬于種類 4 的驅(qū)動(dòng)程序,但到 1997 年底,我們預(yù)計(jì)主要的 DBMS 都會(huì)有種類 4 的驅(qū)動(dòng)程序。

要獲取關(guān)于驅(qū)動(dòng)程序的最新信息,請(qǐng)查閱 JDBC 的網(wǎng)站,其網(wǎng)址為: http:// java.sun.com/products/jdbc。提供第 3 種驅(qū)動(dòng)程序的首批提供者是 SCO、Open Horizon、Visigenic 和 WebLogic。JavaSoft 和數(shù)據(jù)庫(kù)連接的領(lǐng)先提供者 Intersolv合作研制了 JDBC-ODBC 橋和 JDBC 驅(qū)動(dòng)程序測(cè)試工具包。


1.2.4 其它產(chǎn)品
各種 JDBC 應(yīng)用程序的開發(fā)工具正在開發(fā)中。請(qǐng)注意查閱 JavaSoft 網(wǎng)頁(yè)以得到更新信息。



標(biāo)簽:保定 肇慶 北海 潮州 玉樹 廣元 紹興 吳忠

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《JDBCTM 指南:入門》,本文關(guān)鍵詞  JDBCTM,指南,入門,JDBCTM,指南,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《JDBCTM 指南:入門》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于JDBCTM 指南:入門的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章