java - 使用 Jackcess 从 Ubuntu 14.04 服务器访问 Microsoft Access 数据库

标签 java ms-access-2010 jackcess

我已经在我的 Ubuntu 14.04 服务器上安装了 Jackcess 2.0.4 API(IP:192.168.0.130)。现在我想访问 Windows 2003 R2 服务器上的 Microsoft Access 2010 DB(IP:192.168.0.125)。

我该怎么做?

最佳答案

Jackcess 需要能够打开数据库文件,因此

  1. 数据库文件需要位于 Windows 服务器上的共享文件夹中,并且

  2. 必须设置 Ubuntu 服务器来挂载 Windows 共享,最有可能使用与此处描述的步骤类似的步骤:

MountWindowsSharesPermanently

完成后,在 Ubuntu 服务器上运行的 Java 代码应该能够使用 Jackcess 通过从安装位置打开 Access 数据库文件来操作它。

例如,如果您已将 Ubuntu 服务器配置为在 /mnt/windowsshare 处提供 Windows 共享,那么 Jackcess 将简单地打开该文件夹中的数据库文件:

import com.healthmarketscience.jackcess.*;

// ...

Database db = DatabaseBuilder.open(new File("/mnt/windowsshare/Database1.accdb"));

重要提示:

Jackcess直接读写Access数据库文件(.accdb和.mdb文件)。它不使用 Access 数据库引擎 (ACE/Jet),也不尝试重新创建 ACE/Jet 提供的多用户支持。因此,Jackcess本身没有办法管理多个并发用户。 (引用:here。)

如果 Access 数据库驻留在 Windows 共享上,那么在 Jackcess 打开文件时,其他用户或进程至少有可能尝试更新数据库。如果发生这种情况,您很可能会遇到奇怪的错误,甚至可能会损坏数据库文件。

关于java - 使用 Jackcess 从 Ubuntu 14.04 服务器访问 Microsoft Access 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25843505/

相关文章:

java - 创建一个正则表达式来解析文件 - Java

AMD 64 位平台上的 Java native 接口(interface)错误 : Can't load IA 32-bit . dll

sql - SQL缺少运算符

ms-access - 通过网络共享 mdb 文件,对于许多计算机,无法编辑应用程序

java - 对不同类的对象的引用

java - 如何对 MonetaryAmount 中的数字进行四舍五入 (org.javamoney.moneta)

sql - 如何确定给定项目的字段值是否仅在增加?

java - java jackcess中使用多列读取所有行

character-encoding - 使用 iso-8859-1 在 Wildfly 中打开 ucanaccess/jackcess 数据库

java - 通过 java 检查 Access 文件并邮寄特定行