java无法使用Windows64位连接到MS Access数据库
Possible Duplicate:
Microsoft Access and Java JDBC-ODBC Error
我在开始创建数据库时遇到了问题。我有64位版本的Windows 7,发现错误是Microsoft Office为32位。我能够使用odbcad32创建Access数据库。在c:\Windows\sysWOW64\odbcad32中找到exe。exe
现在,在我的Java代码中,我只是尝试连接,但又遇到了似乎相关的问题,让我觉得最多我只是没有正确设置数据库。JavaDB是我在ODBC:DSA中创建的数据源的名称,您可以在这里看到:http://i.imgur.com/9n19x.png
我一直在网上搜索,但找不到确切的答案。可能真的需要帮助,提前谢谢
编辑:我清理了我的代码,现在我的错误不同了。我在项目文件夹C:\Eclipse\project1\src中有我的物理数据库文件-我已经设置好了,就像我在ODBC中说的一样
编辑:好吧,经过数小时的研究,我终于找到了答案。问题不在于我的代码,而在于Office中Windows x64BIT和32位驱动程序的兼容性问题。这篇文章帮助我修复了它,现在它工作了http://www.selikoff.net/2011/07/26/connecting-to-ms-access-file-via-jdbc-in-64-bit-java/
import java.sql.*;
public class DBTester {
public static void main(String[] args) throws SQLException, ClassNotFoundException {
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String fileName = "C:/Eclipse/school/bin/RegistrationDB.mdb";
String dB = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ="+fileName;
Connection connection = DriverManager.getConnection(dB,"","");
System.out.println("connected");
Statement s = connection.createStatement();
s.close();
connection.close();
} catch(Exception ex)
{
ex.printStackTrace();
}
} // end main
} // end class
# 1 楼答案
在做了大量的研究,并看到了大量与我在这里和其他地方有关的未回答问题后,我偶然发现了一篇文章,其中有一个简单的修正,这让我想把我的头撞到我的桌子上
http://www.selikoff.net/2011/07/26/connecting-to-ms-access-file-via-jdbc-in-64-bit-java/
如果您有64位Windows 7计算机和32位版本的Access,您将遇到问题。从这篇文章中,我可以卸载当前的MS Access,并重新安装64位版本。重新添加我的数据库源,一切正常