Microsoft访问java数据库

时间:2013-01-08 18:37:42

标签: java ms-access jdbc-odbc

我正在考虑将Microsoft Access数据库用于Java项目。我的问题是,如果我使用Microsoft访问数据库并完成我的项目并在任何计算机/操作系统上将其作为jar文件运行,那么任何计算机/操作系统是否需要安装Microsoft访问权限,特别是如果数据库需要要放在java程序的GUI上,程序管理员可以添加和删除条目。

2 个答案:

答案 0 :(得分:1)

您必须在访问数据库的任何计算机上安装access odbc驱动程序。我认为你可以通过安装Access运行时的东西而不安装所有的Access来做到这一点。请记住,这种数据访问是文件级的,因此您的性能将非常差。我建议你使用一个真正的数据库(postgres,mysql,sql server,oracle)或者像SQL Server express这样的轻量级数据库,然后使用odbc-jdbc桥或最好是本机jdbc驱动程序访问该数据库。使用本机jdbc驱动程序可以让您从非Windows环境运行应用程序。

答案 1 :(得分:0)

您可以通过每个Microsoft Windows系统上的JDBC-ODBC bridge使用Access数据库,而无需安装Microsoft Access。您只需要以前称为Jet Database Engine的Access数据库引擎(ACE)。 ACE是当前Windows版本的一部分。对于旧版本,可能需要安装Microsoft Data Access Components(MDAC)。

使用Java中的Access数据库有一些缺点:

  • 这是具有本机代码的类型1驱动程序。通常,纯Java JDBC驱动程序的性能更高。
  • 使用JDK 6,JDBC-OLE桥有点enhanced。但是charsets和CLOB仍然存在一些问题。
  • 您的应用程序仅限于Microsoft Windows操作系统。
  • 根据JDK 7 JDBC-ODBC bridge guide,将在JDK 8中删除JDBC-ODBC桥:
  

JDBC-ODBC Bridge应被视为过渡解决方案;它将在JDK 8中删除。此外,Oracle不支持JDBC-ODBC Bridge。 Oracle建议您使用数据库供应商提供的JDBC驱动程序,而不是JDBC-ODBC Bridge。

因此,如果有可能为您的项目使用其他数据库,则应避免将Microsoft Access与Java一起使用。

有许多替代方案可以提供更好的JDBC驱动程序。

如果你想要一个占用空间很小的嵌入式数据库,那就有:

(Java DB,H2和HSQLDB是纯Java解决方案)

如果您更喜欢客户端服务器解决方案,那么对于大多数商业和开源来说,都存在完整的JDBC驱动程序。