JDBC differences between the DB2 Universal JDBC Driver and other DB2 JDBC drivers

zenzuguo發表於2005-11-02

JDBC differences between the DB2 Universal JDBC Driver and other DB2 JDBC drivers

1:DB2 Universal JDBC Driver:

url="jdbc:db2://host:50000/DataBase";
driver:com.ibm.db2.jcc.DB2Driver
jars:db2jcc.jar
DataBase Encoding:utf-8

Installs the db2jcc.jar and sqlj.zip files and adds them to the system 4 CLASSPATH 4
Installs file db2jcct2.dll, which is required for Universal Type 2 Connectivity, in the sqllibbin 4 directory


Exception1: encoding not supported:
com.ibm.db2.jcc.b.DisconnectException: encoding not supported!!

解決辦法:在db2裡建庫時要選擇utf-8編碼(在建庫的第六步)

網上討論:
(1) db2的驅動要使用(db2jcc.jar),否則(用db2java.zip)在websphere下很難正確連線到db2,雖然在tomcat下能正常連線;
在db2裡建庫時要選擇utf-8編碼(在建庫的第六步),否則連線時報"com.ibm.db2.jcc.b.DisconnectException: encoding not supported!!"異常;

(2) 是IBM JDK. 把Squirrel SQL執行的Java_home設定為WSAD的jre_home

CODE:

使用db2jcc.jar連線,code如下:(endb使用的encoding是utf-8)
String url="jdbc:db2://zengal:50000/endb";
String user="db2admin";
String password="zenzuguo";
try {
// Load the DB2(R) Universal JDBC Driver with DriverManager
Class.forName("com.ibm.db2.jcc.DB2Driver");
Connection conn=DriverManager.getConnection(url,user,password);

System.out.println("Connection Successful");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch(SQLException esx){
esx.printStackTrace();
}


2: DB2 JDBC Type 2 Driver (deprecated)

url="jdbc:db2:host:DataBase";
driver:COM.ibm.db2.jdbc.net.DB2Driver
jars:db2jcc.jar,db2java.zip
DataBase Encoding:utf-8/GBK

(或者如果是本地程式連本地db2url可以這樣寫:
url="jdbc:db2:DataBase"
driver:COM.ibm.db2.jdbc.app.DB2Driver)

Installs the db2java.zip file and adds it to the system CLASSPATH
注意: (同時還要將db2jcc.jar加入classpath否則在構造conection pool(如avalon)時,出錯)
但是普通情況下連線正常


使用db2java.zip連線,code如下:(endb使用的encoding是utf-8)
String url="jdbc:db2:zengal:endb";
String user="db2admin";
String password="zenzuguo";
try {
// Load the DB2(R) Universal JDBC Driver with DriverManager
Class.forName("com.ibm.db2.jcc.DB2Driver");
Connection conn=DriverManager.getConnection(url,user,password);

System.out.println("Connection Successful");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch(SQLException esx){
esx.printStackTrace();
}

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/106285/viewspace-809154/,如需轉載,請註明出處,否則將追究法律責任。

相關文章