DB2驅(qū)動(dòng)類型的詳細(xì)解析與對(duì)其的正確應(yīng)用
下面的文章主要介紹的是DB2驅(qū)動(dòng)類型的詳細(xì)解說,IBM公司的數(shù)據(jù)庫(kù)產(chǎn)品線中不同版本,其提供的數(shù)據(jù)訪問API總的來說是很多了,其中包括最早的基于CLI的驅(qū)動(dòng),最近的純Java的驅(qū)動(dòng),以及CLI和 Java的組合.對(duì)于特定的DB2版本的驅(qū)動(dòng)有特定的驅(qū)動(dòng)也有通用的驅(qū)動(dòng),這是很明顯的.
一般說明
IBM公司的數(shù)據(jù)庫(kù)產(chǎn)品線中不同版本提供的數(shù)據(jù)訪問API可以說是很多了,其中包括早期的基于CLI的驅(qū)動(dòng),最近的純Java的驅(qū)動(dòng),以及CLI和 Java的組合.對(duì)于特定的DB2版本的驅(qū)動(dòng)有特定的驅(qū)動(dòng)也有通用的驅(qū)動(dòng),這是很明顯的.但是諸多版本的數(shù)據(jù)庫(kù)系統(tǒng)和諸多版本的訪問驅(qū)動(dòng),放在客戶面前,它們之間的關(guān)系顯得有些紛繁.
所以在使用IBM的數(shù)據(jù)庫(kù)產(chǎn)品時(shí),頭腦中一定要注意版本對(duì)應(yīng)和選擇適當(dāng)?shù)耐ㄓ抿?qū)動(dòng).還好,IBM已經(jīng)開始走向統(tǒng)一了,也開始注意易用性了,這些努力從DB2 UDB V7就開始了.從那時(shí)開始,按照J(rèn)ava領(lǐng)域JDBC驅(qū)動(dòng)的類型劃分,IBM有了三類驅(qū)動(dòng)了.
DB2的JDBC TYPE 2 驅(qū)動(dòng)使 Java 應(yīng)用程序通過JDBC調(diào)用DB2.對(duì) DB2 JDBC type 2 driver 的調(diào)用被轉(zhuǎn)換成 Java 本地方法.Java 使用這種驅(qū)動(dòng)程序的應(yīng)用程序必須運(yùn)行在一個(gè) DB2 客戶機(jī)上,JDBC 請(qǐng)求通過這個(gè)客戶機(jī)轉(zhuǎn)到 DB2 服務(wù)器.在使用 DB2 JDBC 應(yīng)用程序驅(qū)動(dòng)程序訪問 DB2 UDB for iSeries 數(shù)據(jù)源
或者 DB2 for OS/390 或 z/OS 環(huán)境中的數(shù)據(jù)源之前,必須安裝 DB2驅(qū)動(dòng)類型 Connect Version 8.DB2 JDBC type 2 driver 支持 JDBC 1.2 規(guī)范中描述的大部分 JDBC 和 SQLJ 函數(shù),并且支持 JDBC 2.0 規(guī)范中描述的一些函數(shù).
DB2的JDBC TYPE 3 驅(qū)動(dòng),也被稱為applet 或net driver,它由一個(gè)JDBC 客戶機(jī)和一個(gè)JDBC 服務(wù)器(該進(jìn)程的名字是db2jd)組成.既可以在Applet中使用也可以在應(yīng)用程序中使用.
DB2的JDBC TYPE 4 驅(qū)動(dòng)被稱為通用驅(qū)動(dòng),是純Java實(shí)現(xiàn)的,該驅(qū)動(dòng)也支持SQLJ.
目前IBM一直都沒有提供 TYPE 1的JDBC驅(qū)動(dòng)程序.
這些類型驅(qū)動(dòng)程序所在的包是:db2jcc.jar 和 sqlj.zip 文件,sqllib\bin\db2jcct2.dll(該文件是 TYPE2所必需的).
使用
在使用 JDBC 連接 DB2 UDB V7.2 和 DB2 UDB V8.1 時(shí),如果碰到一些令人費(fèi)解的問題,可以檢查一下開發(fā)環(huán)境使用的JDK,在IBM提供的已知JDK中切換(目前有1.3和1.4版本),往往就能解決你的問題。
DB2 UDB V8.2個(gè)人版本中,下面的測(cè)試代碼測(cè)試了三種連接方式,并給出了結(jié)果:
- import java.sql.*;
- public class Employee {
- /**
- * @param args
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- Employee ee = new Employee();
- try {
ee.testJcc();//成功
ee.testNet();//成功
ee.testApp();//失敗,原因是:類型2需要安裝DB2驅(qū)動(dòng)類型訪問客戶端,測(cè)試沒有安裝.如果要通過類型2訪問遠(yuǎn)程數(shù)據(jù)庫(kù),可以把遠(yuǎn)程數(shù)據(jù)庫(kù)編目到本地后即可.
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- /**
以上的相關(guān)內(nèi)容就是對(duì)DB2數(shù)據(jù)庫(kù)驅(qū)動(dòng)類型的講解的介紹,望你能有所收獲。
【編輯推薦】