【问题标题】:can i use bdb(berkeley db) file created by c implementation (python bsddb) by oracle berkeley db java edition?我可以使用 oracle berkeley db java edition 的 c 实现(python bsddb)创建的 bdb(berkeley db)文件吗?
【发布时间】:2008-10-12 16:23:31
【问题描述】:
我有一个由 C 实现(python bsddb 模块)创建的 berkeley db 文件 (*.bdb)。是否可以通过 Berkeley Db 的纯 Java 实现来读取此文件?我尝试使用 berkeley db java edition (je) 阅读它,但不能。 je 抛出一个异常,说它无法检测到 berkeley 数据库。 berkeley db 文件是否不能跨不同的实现互操作?如果有,为什么?
【问题讨论】:
标签:
compatibility
berkeley-db
language-interoperability
【解决方案2】:
请注意,共有三种不同的产品
- Berkeley DB -- C 实现
- 伯克利 DB Java 版
- 伯克利数据库 XML
见,Wikipedia
确实,“Berkeley DB”和“Berkeley DB Java 版”具有不同(即不兼容)的文件格式。但是,“Berkeley DB”产品确实通过 JNI 提供了 Java API。因此,可以从 Java 访问 C 实现编写的数据文件,但不能使用“Berkeley DB Java 版”。
【解决方案3】:
我没有研究过确切的答案,但我有同样的经历。 Java API 根本检测不到使用 pythons bdb 创建的数据库,也可以使用 cli utils 访问该数据库。反之亦然。