0

因此,我已经进行了数小时的反复试验和研究,试图弄清楚这个错误的含义。据我所知,这是由 ODBC 驱动程序和 Microsoft Access 的位架构之间的差异引起的(我正在尝试与 Java 连接)。MS Access 是一个 32 位程序,所以我使用 SysWOW64 odbcad32.exe 创建 DSN。这是我用于连接的 Java 代码:

String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
String url = "jdbc:odbc:bukkitdb";
String username = "root";
String password = "root";

try {
    Class.forName(driver);
} catch (ClassNotFoundException e) {
    Bukkit.broadcastMessage("ClassNotFoundException");
}

try {
    Connection conn = DriverManager.getConnection(url, username, password);
} catch (SQLException e) {
    Bukkit.broadcastMessage(e.getMessage());
}

我看过很多关于如何创建这些连接的教程和示例。我几乎可以肯定这段代码没有任何重大缺陷。运行时,e.getMessage() 将标题中的 SQLException 发送到控制台:指定的 DSN 包含 Driver 和 Application 之间的体系结构不匹配。

任何帮助弄清楚我可以做些什么来解决这个问题将不胜感激;我今天浪费了很多时间试图弄清楚这一点。

4

1 回答 1

0

不幸的是,您需要在 32 位 JVM 上运行您的应用程序才能避免这种情况。ODBC 驱动程序体系结构必须与 JRE 的体系结构相匹配。

以下是有关运行 32 位 JRE 的一些信息:在 64 位 Windows 2008R2 服务器上运行 32 位 JRE

于 2013-09-06T03:59:11.893 回答