Драйвер JDBC типа 4 для базы данных MS ACCESS (.mdb)? - PullRequest
4 голосов
/ 26 ноября 2010

Мое Java-приложение использует базу данных .mdb, и я хочу запустить это приложение на MAC OS, для этого определенно понадобится драйвер JDBC TYPE 4, у меня есть Google, и я натолкнулся на два - HXTT & StelsMDB, но оба вне моей досягаемости

Так что, если у какого-либо органа есть альтернатива или предложения, пожалуйста, ответьте.

Заранее спасибо

Ответы [ 5 ]

6 голосов
/ 26 ноября 2010

Я использовал jackcess , чтобы прочитать таблицы из MDB и преобразовать базу данных в sqlite3.Не идеально, если вам нужно сохранить формат .mdb, но это позволило мне сохранить базу данных в одном файле и сделало базу данных кроссплатформенной.

4 голосов
/ 28 ноября 2010

Базы данных MS Access в MS Windows управляются Microsoft Jet Engine . В отличие от систем управления базами данных клиент-сервер, таких как MS SQL Server или MySQL, подключение к базе данных MS Access выполняется во встроенном режиме через OLE и некоторые библиотеки DLL.

Насколько я знаю, реализация Jet Engine для операционных систем, кроме MS Windows, отсутствует. Поэтому, если вы хотите подключиться к файлу MDB в Mac OS, простого драйвера JDBC недостаточно. Должен быть какой-то слой эмуляции для эмуляции DLL-файлов Jet Engine. Согласно веб-сайту HXTT , именно так работает драйвер HXTT JDBC.

С веб-сайта HXTT:

Содержит быстрый движок базы данных. написанный на Java, который поддерживает встроенный и серверный режимы.

Если использование формата базы данных MS Access является абсолютным требованием, то подобная эмуляция может быть лучшим способом для вас. Но вы должны подтвердить, что уровень совместимости достаточно высок. (Возможно, нет способа получить доступ к макросам VBA, содержащимся в файле MDB.)

Кажется, что нет проекта с открытым исходным кодом, выполняющего такую ​​же эмуляцию, как HXTT.

Есть несколько альтернатив. Если вам нужна встроенная система баз данных, вы можете использовать, например,

  • SQLite ( этот драйвер JDBC поддерживает Mac Os) (один файл базы данных, требуется несколько собственных библиотек),
  • H2 (только несколько файлов базы данных, чистый Java) или
  • Apache Derby (много файлов базы данных, чистая Java).

Или вы можете использовать систему управления базами данных клиент-сервер, установить сервер на хост и подключиться к нему с вашего компьютера Mac OS. Для этого вы можете использовать, например,

Даже чистые базы данных Java H2 и Derby имеют режимы клиент-сервер.

3 голосов
/ 07 мая 2015

Полагаю, UCanAccess - это то, что вы ищете.

Это реализация драйвера JDBC Java с открытым исходным кодом , которая позволяет разработчикам на Java и клиентским программам jdbc (например, DBeaver, NetBeans, SQLeo, Open Office Base, Libre Office Base, Squirrell) читать / написать базу данных Microsoft Access . Поскольку это чистая реализация Java , она работает как в Windows, так и в операционных системах, отличных от Windows (например, linux / unix). ODBC не требуется.

2 голосов
/ 18 октября 2011

StelsMDB не так дорого, как HXTT, все еще не с открытым исходным кодом ...

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

Не пробовал, но ознакомительная версия доступна.

Кто-нибудь еще получил предложения? Я сам ищу вариант с открытым исходным кодом. Не должно быть невозможно построить на вершине jaccess ...

0 голосов
/ 28 марта 2013

Мы используем драйвер JDBC stelsMDB на нашем сервере для чтения / записи файлов MDB.Он не зависит от платформы, поэтому вы можете использовать его и в MacOS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...