为什么我的代码一直得到java.sql.SQLException: [Microsoft][ODBC驱动程序管理器]数据



有人能帮我让我的数据库连接到java。我已经尝试了几个小时,但我仍然得到了这个异常:"java.sql。SQLException: [Microsoft][ODBC Driver Manager]数据源名称未找到且未指定默认驱动程序?"

public Connector() {
      Connection con;
      Statement st;
    try {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        con = DriverManager.getConnection("jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=Database.mdb");
        st = con.createStatement(1004, 1008);
    } 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)

您的Java代码在64位JVM (Java虚拟机)下运行,并试图使用较旧的"Jet" ODBC驱动程序Microsoft Access Driver (*.mdb)。这不起作用,因为旧的"Jet"驱动程序只适用于32位应用程序。您要么需要

  1. 在32位JVM上运行Java程序,或者

  2. 从这里下载并安装64位版本的新"Access Database Engine ('ACE')",然后在64位JVM下运行代码时使用ODBC驱动程序名称Microsoft Access Driver (*.mdb, *.accdb)

另外,请记住JDBC-ODBC桥已经从Java 8中删除了,所以继续使用它不是很"未来友好"。如需其他选项,请参见

从Java操作Access数据库,不使用ODBC

相关内容

  • 没有找到相关文章

最新更新