依照 JDBC 規範,有四種類型的 JDBC 驅動程序體系結構:
Type 1:這類驅動程序將 JDBC API 做爲到另外一個數據訪問 API 的映射來實現,如開放式數據庫連通性(Open Database Connectivity,ODBC)。這類驅動程序一般依賴本機庫,這限制了其可移植性。JDBC-ODBC 橋驅動程序就是 Type 1 驅動程序的最多見的例子。
Type 2:這類驅動程序部分用 JAVA 編程語言編寫,部分用本機代碼編寫。這些驅動程序使用特定於所鏈接數據源的本機客戶端庫。一樣,因爲使用本機代碼,因此其可移植性受到限制。
Type 3:這類驅動程序使用純 JAVA 客戶機,並使用獨立於數據庫的協議與中間件服務器通訊,而後中間件服務器將客戶機請求傳給數據源。
Type 4:這類驅動程序是純 JAVA,實現針對特定數據源的網絡協議。客戶機直接鏈接至數據源。
下面只討論JDBC驅動鏈接DB2數據
第一種:通用鏈接方式
驅動類:com.ibm.db2.jcc.DB2Driver
JDBC鏈接URL:jdbc:db2://ServerIP:Port/databasename
說明:這種鏈接方式不須要DB2 V9開始分離出了客戶端和服務器端,先前的版本沒有單獨的客戶端軟件,推薦使用這種鏈接方式。
第二種:客戶端軟件鏈接方式
驅動類:com.ibm.db2.jcc.DB2Driver
JDBC鏈接URL:jdbc:db2:<數據庫在本地別名>
說明:這種鏈接方式須要用戶安裝DB2客戶端或者服務器端軟件。而後利用DB2軟件,鏈接到服務器上,並給所鏈接的數據庫啓一個別名,做爲數據庫表示,公給本地應用軟件使用,這對本地軟件來講是透明的。這適合小型局域網內。
下面給出兩個鏈接實例:
第一種:通用鏈接方式(推薦)
driverClassName="com.ibm.db2.jcc.DB2Driver"
jdbc:db2://192.168.0.2:50000/zfvims
DB2在windows下默認端口是50000
第二種:客戶端軟件鏈接方式
driverClassName="com.ibm.db2.jcc.DB2Driver"
url="jdbc:db2:zfvims"
有兩種不一樣的方法能夠區分 DB2 系統在內部最終會實例化哪一個驅動程序:
使用不一樣的 URL Pattern 來區分兩種不一樣的驅動程序
Type 2 Driver URL Pattern:jdbc:db2:databasename
這當中 databasename 是須要訪問的數據庫名
Type 4 Driver URL Pattern:jdbc:db2://ServerIP:50000/databasename
這當中 ServerIP 是須要訪問的數據庫所在機器IP地址,databasename 是須要訪問的數據庫名,DB2 服務器會在默認端口 50000 上進行偵聽。
使用鏈接特性來區分數據庫鏈接是否會使用 DB2 本地客戶機庫,或者是使用JAVA 直接鏈接。
DB2 UDB V8.1 新增長支持的這種 Type 4 驅動程序,常被稱爲「通用 JDBC 驅動程序」,是一種與驅動程序類型連通性或目標平臺無關的抽象 JDBC 處理器,所以經常使用於進行分佈式和本地 DB2 UDB 訪問。由於「通用 JDBC 驅動程序」獨立於任何特定 JDBC 驅動程序類型連通性或目標平臺,因此它在一個 DB2 UDB 驅動程序實例中同時支持全部 JAVA 連通性(Type 4 驅動程序)和基於 JNI 的連通性(Type 2 驅動程序)。該驅動程序能夠用於獨立 JAVA 應用程序或多層應用程序,是開發人員一個不錯的選擇。