1

我尝试了多种方法将我的数据库从 ms access 2010 与 java 连接,但它不起作用。

  1. 我通过将属性中的路径更改为%windir%\SysWOW64\odbcad32.exe.

  2. 我在这个网站上下载了 AccessDatabaseEngine_x64.exe 的 Microsoft Access Database Engine 2010 Redistributable。http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=13255

我研究了大部分网站,他们告诉我们下载数据库引擎 2010。但是,我仍然收到此错误:

[Microsoft] [ODBC 驱动程序管理器] 指定的 DSN 包含驱动程序和应用程序之间的体系结构不匹配。

有人可以发布分步指南来解决我的问题吗?任何帮助将不胜感激。

当前源代码

private Connection con; 
public void setUp(String dsn) {
    try { 
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    } catch (Exception e) { 
        System.out.println("Load driver error"); 
    } try { 
        String s = "jdbc:odbc:" + dsn; 
        con = DriverManager.getConnection(s, "", ""); 
    } catch (Exception e) {
        e.printStackTrace(); 
    } 
} 

public ResultSet readRequest(String dbQuery) { 
    ResultSet rs = null; 
    try { 
        Statement stmt = con.createStatement(); 
        rs = stmt.executeQuery(dbQuery); 
    } catch (Exception e) { 
        e.printStackTrace(); 
    } 
    return rs; 
}
4

1 回答 1

0

连接 64 位 JVM 和 64 位 MS-Access 与 64 位略有不同。有人和你经历了同样的痛苦,写了一篇关于如何解决问题的文章。

基本上,如果您使用 64 位库,则需要稍微更改连接字符串。用这个:

String url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ="+fileName;
con = DriverManager.getConnection(url,"","");

其中 filename 是访问文件的完整路径的字符串,而不是:

String s = "jdbc:odbc:" + dsn; 
con = DriverManager.getConnection(s, "", "");
于 2012-11-27T14:53:05.923 回答