【问题标题】:Accessing MS Access Database using Java使用 Java 访问 MS Access 数据库
【发布时间】:2013-07-19 09:44:22
【问题描述】:
            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,但我必须用于大学项目

【问题讨论】:

    标签: ms-access jdbc odbc


    【解决方案1】:

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

    {Microsoft Access Driver (*.mdb)}
    

    ...或...

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

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

    【讨论】:

    • 驱动程序关键字语法错误是我尝试 {Microsoft Access Driver (.mdb, *.accdb)} 或 {Microsoft Access Driver (.accdb)}
    • c= DriverManager.getConnection("jdbc:odbc:obn");我认为这里 64 位和 32 位不匹配
    【解决方案2】:

    我找到了解决办法。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-13
      相关资源
      最近更新 更多