什么';在Java中,连接到MicrosoftAccess2007数据库的正确方法是什么?
我正在尝试使用jdbc odbc桥创建一个简单的连接:什么';在Java中,连接到MicrosoftAccess2007数据库的正确方法是什么?,java,jdbc,ms-access-2007,Java,Jdbc,Ms Access 2007,我正在尝试使用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)};DB
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处理数据库连接的最佳方法是什么?要回答您的一般性问题,我想说用Java处理数据库连接的最佳方法是避免JDBC-ODBC桥。它可以用于测试或学习JDBC,但不能用于实际生产。另外,如果您的数据源没有自己的JDBC驱动程序,但有ODBC驱动程序,那么您可能没有选择 不过,我建议您远离它的主要原因是,它使部署应用程序变得困难。您必须在运行应用程序的计算机上设置数据源。如果您可以访问计算机,那么没有问题,但是假设您正在将应用程序发送到客户端?纯Java JDBC驱动程序在这方面工作得更好,因为它是应用程序的一部分,所以一旦安装了应用程序,就可以连接到数据源
当然,根据您的需求,还有两种其他类型的驱动程序,但这是另一种讨论。为了回答您的一般问题,我想说,在Java中处理数据库连接的最佳方法是避免使用JDBC-ODBC桥。它可以用于测试或学习JDBC,但不能用于实际生产。另外,如果您的数据源没有自己的JDBC驱动程序,但有ODBC驱动程序,那么您可能没有选择 不过,我建议您远离它的主要原因是,它使部署应用程序变得困难。您必须在运行应用程序的计算机上设置数据源。如果您可以访问计算机,那么没有问题,但是假设您正在将应用程序发送到客户端?纯Java JDBC驱动程序在这方面工作得更好,因为它是应用程序的一部分,所以一旦安装了应用程序,就可以连接到数据源
当然,根据您的需求,还有两种其他类型的驱动程序,但这是另一种讨论。一般来说,使用Java中的RDBMS的最佳方法是使用设计为直接连接到数据库的JDBC驱动程序。使用JDBC-ODBC网桥往往很慢
如果您试图使用Access数据库执行基本的读/写操作,我还建议您查看该库。一般来说,使用Java中的RDBMS的最佳方法是使用设计为直接连接到数据库的JDBC驱动程序。使用JDBC-ODBC网桥往往很慢 如果您正试图使用Access数据库执行基本的读/写操作,我还建议您查看该库
它肯定会解决您的所有问题。此外,Oracle声明JDBC-ODBC桥“将在JDK 8中删除”(参考号:)。此外,Oracle声明JDBC-ODBC桥“将在JDK 8中删除”(参考号:)。可能与@GordThompson重复,因此5年前创建的问题可能与12天前提出的问题重复?“如果新问题是更好的问题或有更好的答案,则投票关闭旧问题,作为新问题的副本。”(参考:)可能重复@GordThompson,因此5年前创建的问题可能是12天前提出的问题的副本?”如果新问题是更好的问题或有更好的答案,然后投票关闭旧版本作为新版本的副本。”(参考:)