【问题标题】:Java: Connect to MS-Access Database (mdb or mde)Java:连接到 MS-Access 数据库(mdb 或 mde)
【发布时间】:2011-09-09 05:27:59
【问题描述】:

我正在尝试使用 JDBC:ODBC 连接到 MS-Access:

public boolean connectToAccess(String accessFilePath) {
    //Get connection to database
    try {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        myConnection = DriverManager.getConnection("jdbc: odbc: driver={Microsoft Access Driver (*.mdb)};DBQ=" + accessFilePath);
    } catch (Exception ex) {
        System.out.println(ex);
        return false;
    }
    return true;
}

我收到错误: “找不到适合 jdbc 的驱动程序:odbc: driver={Microsoft Access Driver (*.mdb)};DBQ=file.mdb” 为什么? 你能推荐另一种在 Java 中读取访问文件的方法吗?

【问题讨论】:

  • 你应该删除url中冒号(:)后面的空格

标签: java database ms-access jdbc odbc


【解决方案1】:

尝试从 odbcad32 为 Access 数据库创建 DSN。另一个问题可能是,您的机器上没有安装驱动程序或您的权限不足。

【讨论】:

    【解决方案2】:

    读取 Access 文件的另一种方法是使用 Jackcess 库。

    【讨论】:

    • Jackcess 非常有用且易于集成。
    【解决方案3】:

    从连接字符串中取出这些空格,看看是否有帮助。我还建议打印堆栈跟踪。

    public boolean connectToAccess(String accessFilePath) {
        //Get connection to database
        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            myConnection = DriverManager.getConnection("jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=" + accessFilePath);
        } catch (Exception ex) {
            ex.printStackTrace();
            return false;
        }
        return true;
    }
    

    【讨论】:

      最近更新 更多