我尝试了多种方法将我的数据库从ms access 2010连接到java,但它不起作用。
我通过将属性中的路径更改为%windir%\SysWOW64\odbcad32.exe
,将ODBC驱动程序路径从64位设置为32位。
我在本网站下载了AccessDatabaseEngine_x64.exe的Microsoft Access数据库引擎2010可再发行组件。 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;
}
答案 0 :(得分:0)
连接64位JVM和64位MS-Access与64位略有不同。这是一个经历过和你一样痛苦的人,written an article就如何解决这个问题。
基本上,如果您使用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, "", "");