Могу ли я использовать файл bdb (berkeley db), созданный реализацией c (python bsddb) с помощью oracle berkeley db java edition? - PullRequest
4 голосов
/ 12 октября 2008

У меня есть файл базы данных Беркли (* .bdb), который создается реализацией C (модуль python bsddb). Возможно ли прочитать этот файл чистой реализацией Java из Berkeley Db? Я пытался прочитать его, используя Berkeley DB Java Edition (Je), но не смог. Je выбрасывает исключение, сказав, что он не может обнаружить базу данных Беркли. Являются ли файлы Беркли БД не совместимыми между различными реализациями? Если так, то почему?

Ответы [ 3 ]

5 голосов
/ 12 октября 2008

номер

Согласно FAQ по Berkeley DB Java Edition , Berkeley DB и Berkeley DB Java Edition несовместимы друг с другом, поскольку имеют разную структуру файлов.

2 голосов
/ 08 марта 2011

Обратите внимание, что есть три различных продукта

  1. Berkeley DB - реализация C
  2. Berkeley DB Java Edition
  3. Беркли DB XML

см. Википедия

Это правда, что «Berkeley DB» и «Berkeley DB Java Edition» имеют разные (т.е. несовместимые) форматы файлов. Тем не менее, продукт "Berkeley DB" предоставляет Java API через JNI. Таким образом, можно получить доступ к файлу данных, написанному реализацией C из Java, но не с помощью «Berkeley DB Java Edition».

0 голосов
/ 12 октября 2008

Я не исследовал точный ответ, но у меня такой же опыт. База данных, созданная с помощью pythons bdb, а также доступная с помощью утилит, вообще не обнаруживается Java API. Обратное тоже верно.

...