我在Arch Linux(虚拟机)中安装db2 expressC 10.5。然后我尝试使用COM.ibm.db2.jdbc.app.DB2Driver连接到DB2。所有结果都是找不到类或找不到驱动程序。这是我的代码:
import java.sql.*;
import java.io.*;
import java.lang.*;
class MyJDBC {
static {
try {
Class.forName("COM.ibm.db2.jdbc.app.DB2Driver");
} catch (Exception e) {
System.out.println("Error");
e.printStackTrace();
}
}
public static void main(String argv[]) {
try {
Connection con = null;
String url = "jdbc:db2:sample";
if (argv.length == 0) {
con = DriverManager.getConnection(url);
} else if (argv.length == 2) {
String userid = argv[0];
String passwd = argv[1];
con = DriverManager.getConnection(url, userid, passwd);
} else {
throw new Exception("\nUllU");
}
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery
("SELECT EMPNO, LASTNAME " +
" FROM employee" +
" WHERE SALARY > 40000 " );
while (rs.next()) {
System.out.println("empno = " + rs.getString(1) + " lastname = " + rs.getString(2));
}
rs.close();
stmt.close();
con.close();
} catch(Exception e) {
e.printStackTrace();
}
}
}
环境是:
java version "1.7.0_40"
OpenJDK Runtime Environment (IcedTea 2.4.1) (ArchLinux build 7.u40_2.4.1-3-x86_64)
OpenJDK 64-Bit Server VM (build 24.0-b50, mixed mode)
CLASSPATH:
/home/db2inst1/sqllib/java/db2java.zip:/home/db2inst1/sqllib/function:/home/db2inst1/sqllib/java/db2jcc_license_cu.jar:/home/db2inst1/sqllib/tools/clpplus.jar:/home/db2inst1/sqllib/tools/jline-0.9.93.jar:/home/db2inst1/sqllib/java/db2jcc.jar:.
我认为可以访问所有驱动程序(db2java.zip等),但是当我运行:java MyJDBC
时,它显示:
java.sql.SQLException: No suitable driver found for jdbc:db2:sample
at java.sql.DriverManager.getConnection(DriverManager.java:596)
at java.sql.DriverManager.getConnection(DriverManager.java:233)
at MyJDBC.main(MyJDBC.java:19)
如果指定类路径:java -cp "sqllib/java/*:." MyJDBC
。首先,程序抛出异常(java.lang.ClassNotFoundException:COM.ibm.db2.jdbc.app.DB2Driver)。然后它显示正确的答案。难以相信。希望可以有人帮帮我。感谢。
PS:我知道通过jcc.DB2Driver连接DB2的新方法,它在我的机器上运行良好。但为什么老方法不起作用?
答案 0 :(得分:0)
“为什么旧方法不能工作?” - 因为DB2 LUW 10.1中已停止使用类型2(所谓的“app”)驱动程序。 http://pic.dhe.ibm.com/infocenter/db2luw/v10r1/topic/com.ibm.db2.luw.wn.doc/doc/i0058719.html