2013-01-08 42 views
1

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

+0

我认为你需要在jar运行的操作系统上有一个功能性的ODBC支持。 – amphibient

+1

你可以保持你的数据库在单一的服务器,并使用ODBC数据源连接到数据库,多数民众赞成在.. –

+0

据我所知,jdbc-odbc的方式是用来访问数据库文件。那么,ODBC数据源应该单独配置。 –

回答

1

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

+0

它可能不会很差。这一切都取决于你在做什么。 – Fionnuala

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。但是charset和CLOB仍然存在一些问题。
  • 您的应用程序仅限于Microsoft Windows操作系统。
  • 按照JDK 7 JDBC-ODBC bridge guide的JDBC-ODBC桥将在JDK 8被移除:

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

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

JDBC驱动程序有很多更好的选择。

如果你想有一个小尺寸嵌入式数据库,主要有:

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

如果你喜欢一个客户端服务器解决方案,对于大多数商业和开源存在全面的JDBC驱动程序。