У меня есть файл db berkeley (* .bdb), который создается реализацией C (модуль python bsddb). Можно ли прочитать этот файл с помощью чистой java-реализации Berkeley Db? Я попытался прочитать его с помощью berkeley db java edition (je), но не смог. je исключает исключение, заявляя, что не может обнаружить базу данных berkeley. Являются ли файлы db berkeley не взаимодействующими в разных реализациях? Если да, то почему?Могу ли я использовать файл bdb (berkeley db), созданный c-реализацией (python bsddb) by oracle berkeley db java edition?
4
A
ответ
5
No.
Согласно Berkeley DB Java Edition FAQ, Berkeley DB и Berkeley DB Java Edition не совместимы друг с другом, потому что они имеют другую структуру макета файла.
0
Я не исследовал определенный ответ, но у меня такой же опыт. База данных, созданная с помощью pythons bdb, а также доступная с помощью cli utils, вообще не обнаруживается Java API. Верно и обратное.
1
Обратите внимание, что существуют три различных продуктов
- Berkeley DB - реализация C
- Berkeley DB Java Edition
- Berkeley DB XML
см, Wikipedia
Это правда, что «Berkeley DB» и «Berkeley DB Java Edition» имеют di (т. е. несовместимый). Однако продукт «Berkeley DB» предоставляет Java API через JNI. Таким образом, можно получить доступ к файлу данных, написанному реализацией C от Java, но не к «Berkeley DB Java Edition».