Java Connection.setClientInfo导致AbstractMethodError

时间:2017-02-25 11:38:04

标签: java jdbc db2 db2-luw

简单的Java代码将客户端信息(ClientHostname)设置为java.sql.Connection。但是它给出了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();
    }
  }
}

1 个答案:

答案 0 :(得分:1)

setClientInfo是JDBC 4.0方法,因此您需要使用JDBC 4.0驱动程序。

IBM在db2jcc.jar中提供了JDBC 3.0驱动程序,在db2jcc4.jar中提供了JDBC 4.0驱动程序。因此,请确保db2jcc4.jar而不是CLASSPATH中有db2jcc.jar