DB2 與 JDBC 支持
依照 JDBC 規范,有四種類(lèi)型的 JDBC 驅動(dòng)程序體系結構:
對于DB2 UDB V7.2來(lái)說(shuō),它不支持 Type 1 和 Type 4 的驅動(dòng)程序,但是提供了分別支持 Type 2 和 Type 3 的驅動(dòng)程序。
示例如下:
兩種驅動(dòng)程序均隨產(chǎn)品安裝由 db2java.zip 提供。
這是一種 Type 2 的 JDBC 驅動(dòng)程序,它通過(guò) DB2 本地客戶(hù)機庫的幫助建立和 DB2本地數據庫或是遠程數據庫的連接(事先將遠程數據庫編目到本地)。因此,我們必須在應用系統所在的機器上同時(shí)部署 DB2 本地客戶(hù)機庫,這也許是它最大的一個(gè)不足之處。
使用格式如下:
Driver Name:COM.ibm.db2.jdbc.app.DB2Driver
URL Pattern:jdbc:db2:databasename
databasename: 需要訪(fǎng)問(wèn)的數據庫名
這是一種 Type 3 的 JDBC 驅動(dòng)程序,它通過(guò)與一臺已經(jīng)部署了 DB2 本地客戶(hù)機庫的機器通信來(lái)建立和 DB2 遠程數據庫的連接。
使用格式如下:
Driver Name:COM.ibm.db2.jdbc.net.DB2Driver
URL Pattern:jdbc:db2:ServerIP:databasename
ServerIP: 需要訪(fǎng)問(wèn)的數據庫所在機器IP地址
databasename: 需要訪(fǎng)問(wèn)的數據庫名
(目標DB2系統偵聽(tīng)該服務(wù)于默認端口6789,否則還需要在 URL Pattern 中指定目標端口號)
對于 DB2 UDB V8.1 來(lái)說(shuō),它仍然不支持 Type 1 的驅動(dòng)程序。同時(shí),它在 DB2 UDB V8.1的基礎上,新增加了對 Type 4 驅動(dòng)程序的支持。
示例如下:
DB2 UDB V8.1 仍然支持上面所述 V7.2 支持的兩種驅動(dòng)程序,隨產(chǎn)品安裝由 db2java.zip 提供,但具體實(shí)現上和 DB2 UDB V7.2 產(chǎn)品發(fā)布的包有所不同,所以可能存在下文所要進(jìn)行實(shí)驗驗證的兼容性問(wèn)題。
除了 COM.ibm.db2.jdbc.app.DB2Driver 之外,DB2 UDB V8.1 還提供了另外一種 Type 2 的驅動(dòng)程序,隨產(chǎn)品安裝由 db2jcc.jar 提供。其實(shí)現包名是 com.ibm.db2.jcc.DB2Driver,在DB2 UDB V8.1 最初的實(shí)現中,此驅動(dòng)程序只用于使用 Type 4 驅動(dòng)程序體系結構與 DB2 服務(wù)器進(jìn)行直接的 JAVA 連接,這類(lèi)驅動(dòng)程序由于不需要另外部署 DB2 本地客戶(hù)機庫以及性能相對較好而收到開(kāi)發(fā)人員的歡迎。自從 DB2 UDB V8.1.2(安裝了 FixPack 2)之后,開(kāi)發(fā)人員還可以在 Type 2 體系結構中使用該驅動(dòng)程序,以提高本地應用程序的性能。
這里,兩種驅動(dòng)程序具有相同的實(shí)現類(lèi)名稱(chēng),有兩種不同的方法可以區分 DB2 系統在內部最終會(huì )實(shí)例化哪個(gè)驅動(dòng)程序:
折騰了一天,原來(lái)是驅動(dòng)的問(wèn)題,郁悶
完整代碼:import java.sql.*;
public class Test{
public Test() {
}
public static void main(String[] args) {
try{
Class.forName("com.ibm.db2.jcc.DB2Driver").newInstance();
String url = "jdbc:db2://10.64.1.202:50000/QICC_DB";
String user = "wpl";
String password = "111";
Connection conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
String sql = "select * from XZ_GDZC";
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
System.out.println(rs.getString(1));
System.out.println(rs.getString(2));
}
}catch(Exception ex)
{
System.out.println(ex);
}
}
}
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=110527
聯(lián)系客服