Java Can';t使用Windows-64位连接到MS Access数据库

Java Can';t使用Windows-64位连接到MS Access数据库,java,odbc,Java,Odbc,可能重复: 我在开始创建数据库时遇到了问题。我有64位版本的Windows 7,发现错误是Microsoft Office为32位。我可以使用c:\Windows\sysWOW64\odbcad32.exe中的odbcad32.exe创建Access数据库 现在,在我的Java代码中,我只是尝试连接,但又遇到了似乎相关的问题,让我觉得最多我只是没有正确设置数据库。JavaDB是我在ODBC:DSA中创建的数据源的名称,您可以在这里看到: 我一直在网上搜索,但找不到确切的答案。可能真的需要帮助,

可能重复:

我在开始创建数据库时遇到了问题。我有64位版本的Windows 7,发现错误是Microsoft Office为32位。我可以使用c:\Windows\sysWOW64\odbcad32.exe中的odbcad32.exe创建Access数据库

现在,在我的Java代码中,我只是尝试连接,但又遇到了似乎相关的问题,让我觉得最多我只是没有正确设置数据库。JavaDB是我在ODBC:DSA中创建的数据源的名称,您可以在这里看到:

我一直在网上搜索,但找不到确切的答案。可能真的需要帮助,提前谢谢

编辑:我清理了我的代码,现在我的错误不同了。我在项目文件夹C:\Eclipse\project1\src中有我的物理数据库文件-我已经设置好了,就像我在ODBC中说的一样

编辑:好吧,经过数小时的研究,我终于找到了答案。问题不在于我的代码,而在于Office中Windows x64BIT和32位驱动程序的兼容性问题。这篇文章帮助我修复了它,现在它工作了


在做了大量的研究,并看到了大量与我在这里和其他地方有关的未回答问题后,我偶然发现了一篇文章,其中有一个简单的修正,这让我想把我的头撞到我的桌子上


如果您有64位Windows 7计算机和32位版本的Access,您将遇到问题。从这篇文章中,我可以卸载当前的MS Access,并重新安装64位版本。重新添加我的数据库源,一切正常

经过大量研究,看到了大量与我在这里和其他地方有关的未回答问题,我偶然发现了一篇文章,其中有一个简单的修正,让我想把头撞到我的桌子上

如果您有64位Windows 7计算机和32位版本的Access,您将遇到问题。从这篇文章中,我可以卸载当前的MS Access,并重新安装64位版本。重新添加我的数据库源,一切正常

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