使用 DB2 驱动程序访问 as400
Using a DB2 driver to access as400
我对 SQL 比较陌生,我在连接到 AS/400 DB2 数据库时遇到了一些问题。
我已成功连接到 MySQL、Microsoft SQL Server 和 Netezza 数据库,但我无法连接到此数据库!
我不断收到以下错误:
Java.lang.ClassNotFoundException
我试过 jt400
和 db2jcc
驱动程序,也试过 com.ibm.db2.jcc.DB2Driver
和 com.ibm.as400.access.AS400JDBCDriver
的 class.forName,但没有组合两个帮助了。
例子是:
public Connection startMyRexConnection() {
Connection connect = null;
ConfigReader.main();
try {
Class.forName("com.ibm.db2.jcc.DB2Driver");
connect = DriverManager.getConnection(ConfigReader.getREXurl(), ConfigReader.getREXuser(), ConfigReader.getREXpassword());
}
catch (ClassNotFoundException e) {
System.err.println("Failed to load DB2 driver");
System.err.println(e);
}
catch (SQLException ex) {
System.err.println("SQLException: " + ex.getMessage());
System.err.println("SQLState: " + ex.getSQLState());
System.err.println("VendorError: " + ex.getErrorCode());
System.err.println("Driver loaded, but cannot connect to db: " + ConfigReader.getREXurl());
}
catch (Exception ex) {
System.err.println("Check classpath. Cannot load db driver: " + "com.ibm.db2.jdbc.app.DB2Driver");
}
rexCon = connect;
return connect;
}
如有任何建议,我们将不胜感激!
编辑:
这是 e.printStackTrace() 的输出; :
java.lang.ClassNotFoundException: com.ibm.db2.jcc.DB2Driver
java.lang.ClassNotFoundException: com.ibm.db2.jcc.DB2Driver
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1365)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1188)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.vat.ui.RexConnection.startMyRexConnection(RexConnection.java:26)
at org.apache.jsp.loginRequestHandler_jsp._jspService(loginRequestHandler_jsp.java:143)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
IBM i 的正确驱动程序是 jt400 驱动程序,连接字符串很简单:
jdbc:as400://<host>;
您的 class 姓名正确:
com.ibm.as400.access.AS400JDBCDriver
我对 SQL 比较陌生,我在连接到 AS/400 DB2 数据库时遇到了一些问题。
我已成功连接到 MySQL、Microsoft SQL Server 和 Netezza 数据库,但我无法连接到此数据库!
我不断收到以下错误:
Java.lang.ClassNotFoundException
我试过 jt400
和 db2jcc
驱动程序,也试过 com.ibm.db2.jcc.DB2Driver
和 com.ibm.as400.access.AS400JDBCDriver
的 class.forName,但没有组合两个帮助了。
例子是:
public Connection startMyRexConnection() {
Connection connect = null;
ConfigReader.main();
try {
Class.forName("com.ibm.db2.jcc.DB2Driver");
connect = DriverManager.getConnection(ConfigReader.getREXurl(), ConfigReader.getREXuser(), ConfigReader.getREXpassword());
}
catch (ClassNotFoundException e) {
System.err.println("Failed to load DB2 driver");
System.err.println(e);
}
catch (SQLException ex) {
System.err.println("SQLException: " + ex.getMessage());
System.err.println("SQLState: " + ex.getSQLState());
System.err.println("VendorError: " + ex.getErrorCode());
System.err.println("Driver loaded, but cannot connect to db: " + ConfigReader.getREXurl());
}
catch (Exception ex) {
System.err.println("Check classpath. Cannot load db driver: " + "com.ibm.db2.jdbc.app.DB2Driver");
}
rexCon = connect;
return connect;
}
如有任何建议,我们将不胜感激!
编辑: 这是 e.printStackTrace() 的输出; :
java.lang.ClassNotFoundException: com.ibm.db2.jcc.DB2Driver
java.lang.ClassNotFoundException: com.ibm.db2.jcc.DB2Driver
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1365)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1188)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.vat.ui.RexConnection.startMyRexConnection(RexConnection.java:26)
at org.apache.jsp.loginRequestHandler_jsp._jspService(loginRequestHandler_jsp.java:143)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
IBM i 的正确驱动程序是 jt400 驱动程序,连接字符串很简单:
jdbc:as400://<host>;
您的 class 姓名正确:
com.ibm.as400.access.AS400JDBCDriver