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();

在第一个和第二个我得到例外 -

[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 数据源(32 位)中添加 OBN,选择数据库的路径。但它也没有工作。

它给出了错误

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

我通常不使用 MS Access,但我必须为大学项目

4

2 回答 2

1

验证您是否为您的环境使用了正确的 ODBC 驱动程序名称。您需要指定...

{Microsoft Access Driver (*.mdb)}

...或者...

{Microsoft Access Driver (*.mdb, *.accdb)}

...取决于您是要使用较旧的“Jet”驱动程序(仅适用于 .mdb 文件,仅适用于 32 位应用程序)还是较新的“ACE”驱动程序(.mdb 或 .accdb 文件,可由32 位或 64 位应用程序,如果机器上没有 Access,可能需要单独安装)。

于 2013-07-19T13:10:34.790 回答
0

我找到了解决方案。

使用此连接是正确的。c= DriverManager.getConnection("jdbc:odbc:obn"); 数据库必须在windows管理工具的odbc下添加。由于没有 64 位驱动程序,因此必须使用 32 位驱动程序。由于正在使用 32 位 odbc 驱动程序,我们不能使用 64 位 JVM,因此从项目管理器将 JVM 从 64 位更改为 32 位就可以了,现在它可以正常工作了

于 2013-07-20T01:18:47.553 回答