如何从64位Java连接到Access.mdb数据库?

如何从64位Java连接到Access.mdb数据库?,java,ms-access,Java,Ms Access,您好,我有下面的代码连接到Windows7操作系统上的MS Access数据库。我已将数据源快捷方式更改为指向64位odbc,然后是32位odbc。但是仍然得到错误作为 java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified at sun.jdbc.odbc.JdbcOdbc.createSQLException(J

您好,我有下面的代码连接到Windows7操作系统上的MS Access数据库。我已将数据源快捷方式更改为指向64位odbc,然后是32位odbc。但是仍然得到错误作为

java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
    at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6956)
    at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7113)
    at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3072)
    at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323)
    at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174)
    at java.sql.DriverManager.getConnection(DriverManager.java:579)
    at java.sql.DriverManager.getConnection(DriverManager.java:221)
    at TestDBConnection.main(TestDBConnection.java:21)
我的代码是:

import java.sql.Connection;
import java.sql.DriverManager;

public class TestDBConnection {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        try
        {
            System.out.println("filename");
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            String database = 
                      "jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=C:\\Test\\Tests.mdb";
            Connection conn = DriverManager.getConnection(database, "", "");
        } catch(Exception ex) {
            ex.printStackTrace();
        }
    }

}
我有一个SQL Workbench工具,通过它我可以连接到它,但不能通过java代码


请迫切需要帮助,因为我在谷歌上搜索了3个小时,一直在努力解决这个问题。

如果您的Java应用程序运行在64位Java虚拟机JVM中,那么DRIVER={Microsoft Access DRIVER*.mdb}将无法工作,因为没有64位版本的Jet数据库引擎。你可以

从下载并安装64位版本的Microsoft Access数据库引擎,然后在代码中使用DRIVER={Microsoft Access DRIVER*.mdb,*.accdb}。 。。。或者

在32位JVM中运行Java应用程序,并继续使用现有的DRIVER=string。如果您选择此选项,相关答案可能会有所帮助。 。。。或者

使用JDBC驱动程序访问数据库。它是一个免费的、开源的纯Java实现,因此它可以在32位和64位系统上工作,包括Windows和非Windows。它还可以与Java8一起使用,Java8放弃了JDBC-ODBC桥。有关详细信息,请参阅:
您可以安装64个ODBC驱动程序,以便从Microsoft获得访问权限


1您必须配置系统dsn驱动程序Microsoft Access Driver.mdb、.accdb 2.mdb数据库在上述配置中的链接 然后写下面的代码

 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
 String database = "jdbc:odbc:systemdsnname";
 Connection conn = DriverManager.getConnection(database, "", "");

您使用的是.mdb文件的直接路径,不需要创建任何DSN。同时尝试添加*.accdb:JDBC:ODBC:Driver={Microsoft Access Driver*.mdb,*.accdb};DBQ=DBQ=C:\\Test\\Tests.mdb如果有人使用64位JVM出现此错误,请尝试将*.accdb添加到驱动程序=。。。一串对我来说很有用。回到32位让我很难过,但正确地导出脚本让我再次感到高兴。我过着简单的生活,由于安装了32位office程序,我被限制了这条路线。你的意思是说,当安装了office 32位时,你不能在同一个系统上安装64位odbc驱动程序吗?根据我收到的错误消息,我想是这样的。Windows建议我卸载32位程序。