我的Java应用程序使用.mdb数据库,我想在MAC OS上运行此应用程序,因为我肯定会有一个TYPE 4 JDBC驱动程序我有谷歌并遇到过两个 - HXTT& StelsMDB但两者都无法实现
因此,如果任何机构有一些替代或建议,请回复。
提前致谢
答案 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那样进行同样的仿真。
有几种选择。如果您想要一个嵌入式数据库系统,那么您可以使用例如
或者您可以使用客户端服务器数据库管理系统,在主机上安装服务器并从Mac OS计算机连接到该主机。为此你可以使用例如
即使是纯Java数据库H2和Derby也有客户端服务器模式。
答案 2 :(得分:3)
我认为UCanAccess正是您要找的。 p>
这是一个开源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中使用它。