【问题标题】:Java Netbeans error with MS AcessMS Access 的 Java Netbeans 错误
【发布时间】:2014-05-12 20:27:08
【问题描述】:

嗯,我遇到了一个让我大吃一惊的错误,我无法将我的 JAVA 代码与 MS 访问连接......我已经搜索了几个小时,我已经安装了 MS 驱动程序的 ODBC 并完成了所有步骤...仍然收到此错误消息

java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

我该怎么办..我需要帮助:/

这是连接代码:

public gdUI(MainUI myParentFrame) {
    this.myParentFrame = myParentFrame;
    this.setSize(600, 500);
    this.setVisible(true);
    FillSeverity();
    //DataBAse Connection
    try {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=substituting_DB.accdb;";
        conn = DriverManager.getConnection(database, "", "");
    } catch (Exception e) {
        e.printStackTrace();
    }

    initComponents();
}

【问题讨论】:

  • 您将 ODBC 安装为用户数据源还是系统数据源?
  • 如果您有64位环境,请查看此链接selikoff.net/2011/07/26/…
  • 我有 64 位,但我使用的是 32 位版本的 MS 访问
  • 检查您没有将 64 位 JVM 与 32 位驱动程序混合使用,反之亦然! :)
  • 我已经检查了链接,但我遗漏了一些东西......

标签: java sql sql-server netbeans


【解决方案1】:

由于我发现需要在 Windows 下安装/配置数据源是不行的,因为 MS-Access 也不需要它,我建议使用另一个驱动程序ucanaccess

Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
String database = "jdbc:ucanaccess:////.../substituting_DB.accdb";

驱动需要额外的库;我的 Maven 构建中有以下库依赖项:

<dependencies>
    <dependency>
        <groupId>com.healthmarketscience.jackcess</groupId>
        <artifactId>jackcess</artifactId>
        <version>2.0.2</version>
    </dependency>
    <dependency>
        <groupId>org.hsqldb</groupId>
        <artifactId>hsqldb</artifactId>
        <version>2.3.1</version>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>net.ucanaccess</groupId>
        <artifactId>ucanaccess</artifactId>
        <version>2.0.0</version>
        <scope>runtime</scope>
    </dependency>
</dependencies>

【讨论】:

    最近更新 更多