从 Java(Eclipse)读取 Access 数据库

从 Java(Eclipse)读取 Access 数据库

我使用的是 Windows 7(64 位)。我安装了 64 位版本的 Eclipse 和 JRE,但当我尝试从 Access 读取时遇到了问题。

使用 ODBC 的唯一方法似乎是使用 32 位变体,但这并不匹配。看起来 Java 需要在 32 位模式下运行才能使用它。

我可以只更改 Java(在项目的运行时属性中选择?)吗,还是应该将 Eclipse 重新安装为 32 位版本?

我认为我只安装了 JRE (?)

我尝试使用“UCanAccess”JDBC 驱动程序,但我认为我可能还需要 32 位运行环境。

我在 Eclipse 中运行我的程序,它只是为了读取数据并创建不同的 xml。是否有替代驱动程序?适用于 Access 或 Excel(或任何其他免费数据库)?

答案1

简单地说:64 位 Windows 同时支持 32 位和 64 位组件 - 因此您可以为应用程序选择 32 位堆栈或 64 位堆栈 - 但一起加载到内存中的所有内容(Eclipse、JRE、ODBC 数据源的 JDBC 驱动程序、ODBC 驱动程序)必须是相同的位数。

我敢打赌,即使您的 Windows 环境是 64 位,您的 Access ODBC 驱动程序和/或 Access 本身也是 32 位的。

基于此,我认为您需要将 32 位 Eclipse 和/或 Java 添加到您的环境中(无论您是否保留 64 位组件),或者为 Access 和/或 64 位 Access 安装 64 位 ODBC 驱动程序。

本文我的雇主的网站,关于在 64 位 Windows 上使用 32 位 ODBC,可能会对您有所帮助...

另请注意 - JVM 内置的 JDBC-to-ODBC Bridge 不建议用于生产用途,并且不包含在 Java 8 或任何更高版本的 JVM 中。您可能希望考虑我的雇主提供的 ODBC-to-JDBC Bridge作为替代品。

答案2

我尝试使用“UCanAccess”JDBC 驱动程序,但我认为我可能还需要 32 位运行环境。

不。坎普斯大学是一个纯 Java 实现,不使用 Access ODBC,因此它可以在您使用的任何 JVM 下运行:64 位或 32 位、Windows/Linux/Mac、Java 7 或 Java 8。(早期版本的 Java 也可能受支持;有关详细信息,请查看 UCanAccess 网站。)

有关如何设置的更多信息,请参阅以下 Stack Overflow 文章:

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

相关内容