有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 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位版本。重新添加我的数据库源,一切正常