【问题标题】:Connect to MS access databases in java在 java 中连接到 MS 访问数据库
【发布时间】:2017-01-05 15:19:16
【问题描述】:

我正在尝试将一些数据输入到 microsoft access 数据库中,但我总是遇到同样的错误。这是我的代码:

import java.sql.Connection;
import java.sql.DriverManager;

public class testDDB {

public static void main(String[] args) {
    try{
       Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
       String filename = "C:\\test\\Database1.mdb";
       String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=";
       database+= filename.trim() + ";}"; // add on to the end 
       Connection con = DriverManager.getConnection( database ,"",""); 
    }catch(Exception e){
        e.printStackTrace();
    }

}

我收到以下错误:

java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcConnection.initialize(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)

我看过以前的帖子,我发现了类似的问题,但我仍然没有找到解决方案。我的电脑是64位的,打开C:\Windows\SysWOW64\obdcad32.exe,找到

看来我有 64 位版本的 ODBC...

【问题讨论】:

  • 您是否将 access 数据库设置为 ODBC 数据源?
  • 这可以帮助你JDBC ODBC Driver
  • 你好 BretC,我不确定你的问题。我应该特别将 ODBC 用户数据源链接到此文件吗?
  • 自从我使用 Access 以来已经有好几年了,因为我总是发现它有点缺乏,并且永远不会梦想在现实世界中使用它......那里有很多公司的垃圾,吱吱作响的访问数据库阻碍了他们的企业!!基本上,打开控制面板,搜索“ODBC”,然后为您的访问数据库设置一个 ODBC 源(Google 是您的朋友)。我似乎记得如果我设置一个名为“myDB”的数据库,我可以使用数据库“url:jdbc:odbc:myDB”连接到它。更好的是,使用更适合现实世界的 DBMS!

标签: java ms-access jdbc-odbc


【解决方案1】:

当我转到 C:\Windows\SysWOW64\obdcad32.exe 时,我找到了

| MS Access 数据库 ... Microsoft Access 驱动程序 (*.mdb, *.accdb)

看来我有 64 位版本的 ODBC

文件夹名称“SysWOW64”可能有点误导。它包含 32-bit“WOW”子系统(即“[32-bit]Windows On Windows[64]”)的组件。

所以,“SysWOW64\obdcad32.exe”实际上是 32 位 ODBC 管理员,而您实际上已经安装了 32 位版本的 Access“ACE”ODBC 驱动程序。因此,您需要在 32 位版本的 JRE(Java 运行时环境)下运行您的应用程序才能使用该 ODBC 驱动程序。

此外,请记住 JDBC-ODBC 桥已从 Java 8 中删除,因此您的 JRE 必须适用于 Java 7 或更早版本。 (对于 Java 8 及更高版本,请考虑使用 UCanAccess JDBC 驱动程序。详情here。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 2012-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-04
    相关资源
    最近更新 更多