Java Connection.setClientInfo 结果 AbstractMethodError
Java Connection.setClientInfo results AbstractMethodError
将客户端信息 (ClientHostname) 设置为 java.sql.Connection
的简单 Java 代码。但它给出了 java.lang.AbstractMethodError: com.ibm.db2.jcc.t4.b.setClientInfo(Ljava/lang/String;Ljava/lang/String;)V
错误。任何人都知道出了什么问题?我正在使用 java 8.
找不到路由原因。投射到 DB2Connection
也没有帮助。
public class Main {
public static void main(String[] args) {
try {
Class.forName("com.ibm.db2.jcc.DB2Driver");
Connection con = DriverManager.getConnection("jdbc:db2://host:port/db", "user", "pwd");
con.setClientInfo("ClientHostname", "localhost"); // => error here
System.out.println("SUCCEED setting ClientHostname");
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
setClientInfo
是 JDBC 4.0 方法,因此您需要使用 JDBC 4.0 驱动程序。
IBM 在 db2jcc.jar
中提供 JDBC 3.0 驱动程序,在 db2jcc4.jar
中提供 JDBC 4.0 驱动程序。因此,请确保您的 CLASSPATH
中有 db2jcc4.jar
而不是 db2jcc.jar
.
将客户端信息 (ClientHostname) 设置为 java.sql.Connection
的简单 Java 代码。但它给出了 java.lang.AbstractMethodError: com.ibm.db2.jcc.t4.b.setClientInfo(Ljava/lang/String;Ljava/lang/String;)V
错误。任何人都知道出了什么问题?我正在使用 java 8.
找不到路由原因。投射到 DB2Connection
也没有帮助。
public class Main {
public static void main(String[] args) {
try {
Class.forName("com.ibm.db2.jcc.DB2Driver");
Connection con = DriverManager.getConnection("jdbc:db2://host:port/db", "user", "pwd");
con.setClientInfo("ClientHostname", "localhost"); // => error here
System.out.println("SUCCEED setting ClientHostname");
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
setClientInfo
是 JDBC 4.0 方法,因此您需要使用 JDBC 4.0 驱动程序。
IBM 在 db2jcc.jar
中提供 JDBC 3.0 驱动程序,在 db2jcc4.jar
中提供 JDBC 4.0 驱动程序。因此,请确保您的 CLASSPATH
中有 db2jcc4.jar
而不是 db2jcc.jar
.