簡體   English   中英

無法使用Java連接到DB2數據庫?

[英]Unable to connect to DB2 Database using java?

我正在嘗試連接到服務器上的遠程DB2數據庫。 我已經使用ODBC建立了必要的DSN連接,並且測試成功。 所以在下面的代碼中,我正在使用IMRM2(這是我的DSN名稱),對嗎?

但是我的主要問題是,即使將db2jcc.jar,db2jcc_license_cu.jar添加到我的eclipse庫中,我也遇到以下錯誤。

錯誤:

java.lang.ClassNotFoundException: com.ibm.db2.jcc.DB2Driver
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at ConnectToDb2.makeConnection(CreateChart.java:19)
    at CreateChart.main(CreateChart.java:63)
Caused by: java.util.zip.ZipException: invalid LOC header (bad signature)
    at java.util.zip.ZipFile.read(Native Method)
    at java.util.zip.ZipFile.access$1400(Unknown Source)
    at java.util.zip.ZipFile$ZipFileInputStream.read(Unknown Source)
    at java.util.zip.ZipFile$ZipFileInflaterInputStream.fill(Unknown Source)
    at java.util.zip.InflaterInputStream.read(Unknown Source)
    at sun.misc.Resource.getBytes(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$100(Unknown Source)
    ... 11 more

Java文件。

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

class ConnectToDb2{

    String jdbcClassName="com.ibm.db2.jcc.DB2Driver";
    String url="jdbc:db2:IMRM2";
    String user="db2inst1";
    String password="DB2";
    Connection connection = null;


        public void makeConnection()
        {   

            try 
            {   
                Class.forName(jdbcClassName);
                connection = DriverManager.getConnection(url, user, password);
            } 

            catch (ClassNotFoundException e) 
            {
                e.printStackTrace();
            } 

            catch (SQLException e) 
            {
                e.printStackTrace();
            }


            finally
            {
                if(connection!=null)
                {
                    System.out.println("Connected successfully.");
                    try 
                    {
                        connection.close();
                    }

                    catch (SQLException e) 
                    {
                        e.printStackTrace();
                    }
                }
            }//End of finally 

        } // End of method makeConnection

}


public class CreateChart {


    public static void main(String[] args) {

        ConnectToDb2 obj_connectdb2 = new ConnectToDb2();

        obj_connectdb2.makeConnection();

    }

}

根本問題在此行中指示:

Caused by: java.util.zip.ZipException: invalid LOC header (bad signature)

您的驅動程序文件可能已損壞。 如果使用zip程序將其打開,則可能會看到指示的錯誤。

解決方案:重新下載驅動程序。

類似的問題,解決方案: tomcat7:無法加載JDBC驅動程序類[com.mysql.jdbc.Driver]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM