1

这是我尝试连接 Db2 的班级:

package Test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;


public class Db2Connection {


 public static void main(String[] args) {

    Connection conn = null;
    String driverName = "COM.ibm.db2.jdbc.app.DB2Driver";
    String db2ConnectString = "jdbc:db2:DB2XAT33;UID=G37RSF4;PWD=HOT22RST";
    try {
        Class.forName(driverName);
        conn = DriverManager.getConnection(db2ConnectString);
    } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        System.out.println("ClassNotFoundException Message --       "+      e.getMessage());
        e.printStackTrace();
    }catch (SQLException e) {
        // TODO Auto-generated catch block
        System.out.println("SQLException Message -- " + e.getMessage());
        e.printStackTrace();            
    }catch (UnsatisfiedLinkError e) {
    // TODO Auto-generated catch block
    System.out.println("UnsatisfiedLinkError Message -- " + e.getMessage());
    e.printStackTrace();            
    }   
    catch (Exception e) {
        // TODO Auto-generated catch block
        System.out.println("General Exception Message --        "                  +                            e.getMessage());
        e.printStackTrace();
    }


}

}

当我运行它时,我得到以下异常:

       java.lang.UnsatisfiedLinkError: SQLAllocEnv
at COM.ibm.db2.jdbc.app.DB2Driver.<init>(Unknown Source)
at COM.ibm.db2.jdbc.app.DB2Driver.<clinit>(Unknown Source)
at java.lang.Class.forName1(Native Method)
at java.lang.Class.forName(Class.java:142)

我在文件夹“C:\Program Files\IBM\SQLLIB\java\”中有 Db2.zip。我通过 JavaBuildpath 将 Db2.zip 和 ojdbc.jar 添加到了我的包中。

4

2 回答 2

1

您正在尝试使用类型 2(所谓的“应用程序”)驱动程序,该驱动程序 1)要求您至少安装带有本机 CLI/ODBC 库的运行时客户端,并且 2)已弃用。

考虑使用类型 4(“jcc”)驱动程序,它是纯 Java。更多信息可以在这里找到:在 DB2 中实现类型 4 jdbc 驱动程序

于 2013-09-19T11:57:26.427 回答
1

检查 LD_LIBRARY_PATH shell 环境变量;它需要包含 db2 库所在的目录。谷歌搜索“websphere db2 ld_library_path”,不带引号。

于 2013-09-19T07:38:51.580 回答