0
            try{
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                String database = 
          "jdbc:odbc:Driver={MS Access Database (*.accdb)};DBQ=obn.accdb;";
        c= DriverManager.getConnection(database, "", "");
        s=c.createStatement();
                    string = "IN TRY";
                    s.close();  // Close the statement
                    c.close(); // Close the database. Its no more required
                    JOptionPane.showMessageDialog( null, string );

            }
            catch(Exception e)
            {
                string = "IN exception";
                JOptionPane.showMessageDialog( null, string );
            }

上記のコードを使用してJavaを使用してMS Accessデータベースにアクセスしようとしましたが、常に例外があります。私はいくつかのことを試しました

            c= DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=obn.mdb");
            s=c.createStatement();

最初のものと2番目のものでは例外が発生します-

[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified. 

...

                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        c= DriverManager.getConnection("jdbc:odbc:obn");
        s=c.createStatement();

Windows の ODBC Datasources(32-bit) に OBN を追加し、データベースへのパスを選択して、このようにしてみました。しかし、それもうまくいきませんでした。

エラーが発生しました

The specified DSN contains an architecture mismatch between the Driver and Application

私は通常、MS Access を使用しませんが、大学のプロジェクトでは使用する必要があります

4

2 に答える 2

0

解決策を見つけました。

これを使って接続するのが正しいです。c= DriverManager.getConnection("jdbc:odbc:obn"); データベースは、Windows 管理ツールの odbc の下に追加する必要があります。64 ビットのドライバーがないため、32 ビットのドライバーを使用する必要があります。32ビットodbcドライバーが使用されているため、64ビットJVMを使用できないため、プロジェクトマネージャーからJVMを64ビットから32ビットに変更するとうまくいき、今では正常に動作します

于 2013-07-20T01:18:47.553 に答える