因此,我已经进行了数小时的反复试验和研究,试图弄清楚这个错误的含义。据我所知,这是由 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 之间的体系结构不匹配。
任何帮助弄清楚我可以做些什么来解决这个问题将不胜感激;我今天浪费了很多时间试图弄清楚这一点。