MS ACCESS(.mdb)数据库的类型4 JDBC驱动程序?

时间:2010-11-26 10:57:22

标签: java ms-access jdbc

我的Java应用程序使用.mdb数据库,我想在MAC OS上运行此应用程序,因为我肯定会有一个TYPE 4 JDBC驱动程序我有谷歌并遇到过两个   - HXTT& StelsMDB但两者都无法实现

因此,如果任何机构有一些替代或建议,请回复。

提前致谢

5 个答案:

答案 0 :(得分:6)

我使用jackcess从MDB读取表并将数据库转换为sqlite3。如果你需要保留.mdb格式,这是不理想的,但它允许我将数据库保存在一个文件中并使数据库跨平台。

答案 1 :(得分:4)

MS Windows上的MS Access数据库由Microsoft Jet Engine驱动。与MS SQL Server或MySQL等客户端服务器数据库管理系统不同,与MS Access数据库的连接通过OLE和某些DLL以嵌入模式运行。

据我所知,MS Windows以外的操作系统没有Jet Engine实现。因此,如果要在Mac OS上连接到MDB文件,仅使用简单的JDBC驱动程序是不够的。必须有某种仿真层来模拟Jet Engine DLL。根据{{​​3}},这正是HXTT JDBC驱动程序的工作方式。

来自HXTT网站:

  

它包含一个快速的数据库引擎   用Java编写,支持   嵌入式和服务器模式。

如果绝对要求使用MS Access数据库格式,那么这种模拟可能是最适合您的方式。但是你必须证明兼容性水平是否足够高。 (可能无法访问MDB文件中包含的VBA宏。)

似乎没有开源项目像HXTT那样进行同样的仿真。

有几种选择。如果您想要一个嵌入式数据库系统,那么您可以使用例如

  • HXTT websiteSQLite支持Mac Os)(一个数据库文件,需要一些本机库),
  • this JDBC driver(只有少数数据库文件,纯Java)或
  • H2(许多数据库文件,纯Java)。

或者您可以使用客户端服务器数据库管理系统,在主机上安装服务器并从Mac OS计算机连接到该主机。为此你可以使用例如

即使是纯Java数据库H2和Derby也有客户端服务器模式。

答案 2 :(得分:3)

我认为UCanAccess正是您要找的。

这是一个开源Java JDBC驱动程序实现,它允许Java开发人员和jdbc客户端程序(例如,DBeaver,NetBeans,SQLeo,Open Office Base,Libre Office Base,Squirrell)读/写Microsoft Access数据库。因为它是纯粹的java实现它在Windows和非Windows操作系统(例如,linux / unix)中运行。无需ODBC。

答案 3 :(得分:2)

StelsMDB并不像HXTT那样昂贵,仍然不是开源......

http://www.csv-jdbc.com/stels_mdb_jdbc.htm

有没有尝试过,但可以使用评估版。

其他人有建议吗?我自己在找一个开源变种。不应该在jaccess之上建立......

答案 4 :(得分:0)

我们在服务器上使用stelsMDB JDBC驱动程序来读/写MDB文件。它与平台无关,因此您也可以在MacOS中使用它。