新聞中心
對(duì) Java 產(chǎn)生混淆的常見根源是:JDBC 有不同的版本,JDBC 驅(qū)動(dòng)程序有不同的類型,它們可以被不同版本的 Java 使用。而且,新的 Java 規(guī)范總是在開發(fā)之中,因?yàn)橥ㄟ^ Java 社區(qū)過程(Java Community Process),相關(guān)的功能在不斷地?cái)U(kuò)展中。

JDBC 版本
DB2 通用數(shù)據(jù)庫 V8.1 支持 JDBC V2.1 規(guī)范和部分 JDBC 3.0 規(guī)范。使用通用 JDBC 驅(qū)動(dòng)程序,全面支持 JDBC 3.0 需求的計(jì)劃正在進(jìn)行之中。
JDBC 驅(qū)動(dòng)程序被認(rèn)證為 J2EE 解決方案的一個(gè)組件。驅(qū)動(dòng)程序認(rèn)證的結(jié)果總是發(fā)布在 Sun 兼容性網(wǎng)站上。
JDBC 驅(qū)動(dòng)程序體系結(jié)構(gòu)
JDBC 驅(qū)動(dòng)程序體系結(jié)構(gòu)分為四種類型。
◆Type 1
◆Type 2
◆Type 3
◆Type 4
JDBC Type 1 驅(qū)動(dòng)程序
JDBC Type 1 驅(qū)動(dòng)程序基于 JDBC-ODBC 橋。因此 ODBC 驅(qū)動(dòng)程序可以與此類 JDBC 驅(qū)動(dòng)程序(由 Sun 提供)結(jié)合起來使用。IBM 不支持 Type 1 驅(qū)動(dòng)程序,因此它不是推薦的環(huán)境。圖 1 顯示了 JDBC Type 1 驅(qū)動(dòng)程序的示例:
圖 1. JDBC Type 1 驅(qū)動(dòng)程序
JDBC Type 2 驅(qū)動(dòng)程序
JDBC Type 2 驅(qū)動(dòng)程序依靠特定于操作系統(tǒng)的庫(共享庫)來與 RDBMS 通信。應(yīng)用程序?qū)⒀b入這種 JDBC 驅(qū)動(dòng)程序,而驅(qū)動(dòng)程序?qū)⑹褂霉蚕韼靵砼c DB2 服務(wù)器通信。DB2 UDB for Linux, UNIX? 和 Windows? V8.1 提供了兩種不同的 Type 2 驅(qū)動(dòng)程序:
舊的/CLI JDBC 驅(qū)動(dòng)程序在文件 db2java.zip 中提供。其實(shí)現(xiàn)包名稱為 COM.ibm.db2.jdbc.app.DB2Driver。該驅(qū)動(dòng)程序目前已被用于進(jìn)行 J2EE 認(rèn)證。其別名“app 驅(qū)動(dòng)程序”源自于一種觀念及其包名稱,這種觀念就是:此驅(qū)動(dòng)程序?qū)⑼ㄟ^遠(yuǎn)程數(shù)據(jù)庫的本地 DB2 UDB 客戶機(jī)執(zhí)行本地連接。
通用 JDBC 驅(qū)動(dòng)程序在文件 db2jcc.jar 中提供。其實(shí)現(xiàn)包名稱為 com.ibm.db2.jcc.DB2Driver。 此驅(qū)動(dòng)程序是 DB2 UDB for Linux, UNIX 和 Windows V8.1 中的新功能。在最初的實(shí)現(xiàn)(V8.1)中,此驅(qū)動(dòng)程序用于使用 Type 4 驅(qū)動(dòng)程序體系結(jié)構(gòu)與 DB2 服務(wù)器進(jìn)行直接的 Java 連接。在 DB2 V8.1.2 中,您可以在 Type 2 體系結(jié)構(gòu)中使用此驅(qū)動(dòng)程序。在 Type 2 體系結(jié)構(gòu)中使用此驅(qū)動(dòng)程序的一個(gè)主要原因是為了本地應(yīng)用程序性能和分布式事務(wù)支持。通用 JDBC Type 2 驅(qū)動(dòng)程序分別使用 com.ibm.db2.jcc.DB2XADataSource 和 com.ibm.db2.jcc.DB2ConnectionPoolDataSource 來支持分布式事務(wù)和連接池。
可以使用 JDBC Type 2 驅(qū)動(dòng)程序來支持 JDBC 應(yīng)用程序。WebSphere Application Server 同時(shí)支持這兩種 Type 2 驅(qū)動(dòng)程序。注:在將來的版本中不會(huì)對(duì)舊的/CLI Type 2 驅(qū)動(dòng)程序進(jìn)行增強(qiáng)。
圖 2 顯示了使用 JDBC Type 2 驅(qū)動(dòng)程序的應(yīng)用程序的典型拓?fù)浣Y(jié)構(gòu):
圖 2. 使用JDBC Type 2 驅(qū)動(dòng)程序的應(yīng)用程序
JDBC Type 3 驅(qū)動(dòng)程序
JDBC Type 3 驅(qū)動(dòng)程序是一種純 Java 實(shí)現(xiàn),它必須與 DB2 JDBC Applet 服務(wù)器(DB2 JDBC Applet Server)通信才能訪問 DB2 數(shù)據(jù)。此類驅(qū)動(dòng)程序旨在使 Java applet 能訪問 DB2 數(shù)據(jù)源。在圖 3 所顯示的方案中,應(yīng)用程序與安裝有 DB2 客戶機(jī)另一臺(tái)機(jī)器進(jìn)行通信。
圖 3. 使用Type 3 JDBC 驅(qū)動(dòng)程序的典型應(yīng)用程序方案
JDBC Type 3 驅(qū)動(dòng)程序常被稱作“網(wǎng)絡(luò)(net)驅(qū)動(dòng)程序”,它是根據(jù)其包名 COM.ibm.db2.jdbc.net 命名的。DB2 V8.1 支持網(wǎng)絡(luò)驅(qū)動(dòng)程序,可以將其用于 JDBC 應(yīng)用程序。
Type 3 驅(qū)動(dòng)程序要求 db2java.zip 驅(qū)動(dòng)程序總是處于與 DB2 Applet 服務(wù)器相同的維護(hù)級(jí)別。如果驅(qū)動(dòng)程序在 applet 內(nèi)使用,這就不是一個(gè)問題,因?yàn)闉g覽器會(huì)在應(yīng)用程序執(zhí)行期間下載相應(yīng)的 db2java.zip 文件。許多客戶使用 Type 3 驅(qū)動(dòng)程序而不是 Type 2 驅(qū)動(dòng)程序,以避免必需的 DB2 客戶機(jī)安裝和必需的 DB2 CATALOG DATABASE 命令,后者用于創(chuàng)建使用舊的/CLI 驅(qū)動(dòng)程序進(jìn)行 Type 2 連接所必需的數(shù)據(jù)庫目錄信息。目前,WebSphere Application Server 和其它 J2EE 服務(wù)器不支持 IBM Type 3 驅(qū)動(dòng)程序,因?yàn)樵擈?qū)動(dòng)程序不支持分布式事務(wù)(JTA)。將來的版本不會(huì)對(duì) Type 3 驅(qū)動(dòng)程序進(jìn)行增強(qiáng)。
我們鼓勵(lì)使用通用 JDBC Type 4 驅(qū)動(dòng)程序來替代 Type 3 驅(qū)動(dòng)程序。
JDBC Type 4 驅(qū)動(dòng)程序
Type 4 驅(qū)動(dòng)程序是僅用于 Java 的 JDBC 驅(qū)動(dòng)程序,它直接連接到數(shù)據(jù)庫服務(wù)器。DB2 UDB for Linux, UNIX 和 Windows V8.1 引入了稱為“通用 JDBC 驅(qū)動(dòng)程序(Universal JDBC driver)”的 Type 4 驅(qū)動(dòng)程序。通用 JDBC 驅(qū)動(dòng)程序在文件 db2jcc.jar 中提供。其實(shí)現(xiàn)包名為 com.ibm.db2.jcc.DB2Driver。
請注意,通用 Type 2 和通用 Type 4 驅(qū)動(dòng)程序具有相同的實(shí)現(xiàn)類名稱。有兩種方法可以區(qū)別 DB2 在內(nèi)部將實(shí)例化哪個(gè)驅(qū)動(dòng)程序:
使用連接特性來確定連接是否使用共享庫(Type 2),或者驅(qū)動(dòng)程序是否會(huì)啟動(dòng)來自 Java 應(yīng)用程序的直接連接(Type 4)。
使用不同的連接 URL 模式來指示您想要 Type 2 和 Type 4 行為中的哪一種。
Type 4 URL 模式的示例:字符串“jdbc:db2://server1:50000/sample”要求 JDBC 驅(qū)動(dòng)程序?qū)?Java 應(yīng)用程序直接連接到 DB2 服務(wù)器上名為“sample”的數(shù)據(jù)庫,該數(shù)據(jù)庫位于配置在 DB2 服務(wù)器(主機(jī)名為 server1)上的 DB2 實(shí)例中,而 DB2 服務(wù)器則在端口 50000 上進(jìn)行偵聽。
Type 2 URL 模式的示例:字符串“jdbc:db2:sample”。有關(guān) DB2 服務(wù)器(“server1”)和端口(“50000”)的信息可以在 DB2 客戶機(jī)編目目錄中找到。
通 用 JDBC 驅(qū)動(dòng)程序是一種與驅(qū)動(dòng)程序類型連通性或目標(biāo)平臺(tái)無關(guān)的抽象 JDBC 處理器。通用 JDBC 驅(qū)動(dòng)器是一種與體系結(jié)構(gòu)無關(guān)的 JDBC 驅(qū)動(dòng)程序,用于進(jìn)行分布式和本地 DB2 UDB 訪問。因?yàn)橥ㄓ?JDBC 驅(qū)動(dòng)程序獨(dú)立于任何特定 JDBC 驅(qū)動(dòng)程序類型連通性或目標(biāo)平臺(tái),所以它在一個(gè) DB2 UDB 驅(qū)動(dòng)程序?qū)嵗型瑫r(shí)支持所有 Java 連通性(Type 4 驅(qū)動(dòng)程序)和基于 JNI 的連通性(Type 2 驅(qū)動(dòng)程序)。該驅(qū)動(dòng)程序可以用于獨(dú)立 Java 應(yīng)用程序或多層應(yīng)用程序。
重要:就 DB2 UDB V8.1.2 而言,通用 JDBC 驅(qū)動(dòng)程序要求 CLASSPATH 中有許可證 JAR 文件和 db2jcc.jar 文件。以下是所需的許可證 JAR 文件:
◆對(duì)于 Cloudscape? Network Server V5.1:db2jcc_license_c.jar
◆對(duì)于 DB2 UDB V8 for Linux, UNIX 和 Windows 服務(wù)器:db2jcc_license_su.jar
◆對(duì)于 DB2 UDB for iSeries? and z/OS 服務(wù)器(與 DB2 Connect 和 DB2 Enterprise Server Edition 一起提供):db2jcc_license_cisuz.jar
通用驅(qū)動(dòng)程序可以通過使用預(yù)先安裝在目標(biāo)服務(wù)器上的必備存儲(chǔ)過程,來查詢數(shù)據(jù)庫元數(shù)據(jù)目錄及檢索服務(wù)器錯(cuò)誤消息文本:
◆對(duì)于 Linux、UNIX 和 Windows 上的 UDB V8,這些存儲(chǔ)過程是預(yù)先安裝的。
◆對(duì)于 DB2 UDB for OS/390? V6,必須安裝 PTF UQ72081 和 UQ72082。
◆對(duì)于 DB2 UDB for OS/390 and z/OS V7,必須安裝 PTF UQ72083。即將推出的 z/OS 上的 DB2 UDB V8 將會(huì)預(yù)先安裝必需的存儲(chǔ)過程。
◆DB2 UDB for iSeries V5R1 需要 PTF SI06308、SI06300、SI06301、SI06302、SI06305、SI06307 和 SI05872。
◆DB2 UDB for iSeries V5R2 需要 PTF SI06541、SI06796、SI07557、SI07564、SI07565、SI07566 和 SI07567。DB2 UDB for iSeries V5R3 將會(huì)預(yù)先安裝必需的存儲(chǔ)過程。
圖 4 中顯示了 Type 4 JDBC 驅(qū)動(dòng)程序?qū)崿F(xiàn)。注:從 Linux、UNIX 和 Windows 上的 Java 應(yīng)用程序或 applet 連接到 DB2 for z/OS and OS/390 所用的通用 JDBC/SQLJ 驅(qū)動(dòng)程序(Type 4 和 Type 2)需要適當(dāng)?shù)脑S可證文件(db2jcc_license_cisuz.jar)。該許可證文件是隨 DB2 Connect 產(chǎn)品一起提供的。
文章題目:揭密JDBC驅(qū)動(dòng)程序
網(wǎng)頁網(wǎng)址:http://m.fisionsoft.com.cn/article/cogdisj.html


咨詢
建站咨詢
