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

标签 java ms-access

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

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 个小时的 Google 搜索中遇到了这个问题。

最佳答案

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

  • here 下载并安装 64 位版本的 Microsoft Access 数据库引擎,然后在代码中使用 DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}

...或...

  • 在 32 位 JVM 中运行您的 Java 应用,并继续使用现有的 DRIVER= 字符串。相关答案here如果您选择此选项,可能会有所帮助。

...或...

  • 使用UCanAccess Access 数据库的 JDBC 驱动程序。它是一个免费、开源、纯 Java 实现,因此它可以在 32 位和 64 位系统、Windows 和非 Windows 上运行。它还适用于 Java 8(已删除 JDBC-ODBC 桥)。欲了解更多详情,请参阅:

         Manipulating an Access database from Java without ODBC

关于java - 如何从 64 位 Java 连接到 Access .mdb 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23141655/

相关文章:

sql-server - VBA 中的数据转换类型错误

c# - 错误 - 连接字符串属性尚未初始化(C# 数据库)?

java - 如何在 Java 中使用带有 WebClient 的 Vertx 路由器中的 future

Java - 具有 If 语句打印顺序错误的主方法

java - 找不到用@Named#value 注释的方法

sql - 左连接包括 where 条件不起作用

ms-access - Access 查询的 CSV 导出将浮点(单精度/ double )值限制为小数点后 2 位

PHP在MYSQL数据库中执行语句非常慢

java - 如何更改选定单元格的整列和整行的背景

java - Google App Engine 应用程序实例回收和响应时间