1

我正在尝试使用 jdbc-odbc 网桥创建一个简单的连接:

public static Connection  getConnection() {
    Connection con =null;
    try {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        String conStr = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" +
            "c:\\myfolder\\accesdbfile.accdb";
        con = DriverManager.getConnection(conStr);
    } catch(Exception e) {
        e.printStackTrace();}
    return con;
}

但后来我得到了这个例外:

java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key Temporary (volatile) Ace DSN for process 0xa4 Thread 0xec0 DBC 0x2f8574c                                                              Jet'.

有任何想法吗?

2009 年 3 月 24 日更新:现在它正在工作。创建了一个用户数据源,由于某种原因异常消失了。

作为一个普遍的问题,在 Java 中处理数据库连接的最佳方法是什么?

4

3 回答 3

6

通常,在 Java 中使用 RDBMS 的最佳方式是使用旨在直接连接到数据库的 JDBC 驱动程序。使用 JDBC-ODBC 桥往往很慢。

如果您尝试使用 Access 数据库进行基本的读/写操作,我还建议您查看Jackcess库。

于 2009-03-24T03:28:20.707 回答
2

要回答您的一般问题,我想说在 Java 中处理数据库连接的最佳方法是避免使用 JDBC-ODBC 桥。它可以用于测试或学习 JDBC,但不适用于实际生产使用。此外,如果您的数据源没有自己的 JDBC 驱动程序但有 ODBC 驱动程序,那么您可能别无选择。

我建议您远离它的主要原因是它使您的应用程序难以部署。您必须在运行应用程序的机器上设置数据源。如果您可以访问机器没问题,但假设您将应用程序发送给客户端?纯 Java JDBC 驱动程序在这方面效果更好,因为它作为应用程序的一部分包含在内,因此一旦安装了应用程序,它就可以连接到数据源了。

当然,根据您的要求,还有其他两种类型的驱动程序,但那是另一个讨论。

于 2009-03-24T03:15:34.593 回答
0
  1. 转到控制面板 --> 管理工具 --> ODBC 数据源管理器
  2. 添加数据库 --> 选择“Microsoft Driver(*.mdb, *.accdb)”
  3. Dobule 单击新数据库 --> 在“数据库”下单击“选择” --> 选择您创建的 *.accdb 文件作为 MS 访问数据库。
  4. 说好,然后转到你的 java 代码
  5. 使用:Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con = DriverManager.getConnection("jdbc:odbc:filename");

它一定会解决你所有的问题。

于 2013-11-27T20:11:23.440 回答