我有一个由 C 实现(python bsddb 模块)创建的 berkeley db 文件(*.bdb)。是否可以通过 Berkeley Db 的纯 Java 实现来读取此文件?我尝试使用 berkeley db java edition (je) 阅读它,但不能。je 抛出一个异常,说它无法检测到 berkeley 数据库。berkeley db 文件是否不能跨不同的实现互操作?如果是这样,为什么?
NeoAnderson
问问题
1298 次
3 回答
5
不。
根据Berkeley DB Java 版常见问题解答,Berkeley DB 和 Berkeley DB Java 版彼此不兼容,因为它们具有不同的文件布局结构。
于 2008-10-12T17:27:25.827 回答
2
请注意,共有三种不同的产品
- Berkeley DB——C 实现
- 伯克利数据库 Java 版
- 伯克利数据库 XML
见,维基百科
确实,“Berkeley DB”和“Berkeley DB Java 版”具有不同的(即不兼容的)文件格式。但是,“Berkeley DB”产品确实通过 JNI 提供了 Java API。因此,可以从 Java 访问由 C 实现编写的数据文件,但不能使用“Berkeley DB Java 版”。
于 2011-03-08T14:58:50.297 回答
0
我没有研究过明确的答案,但我有同样的经历。Java API 根本检测不到使用 pythons bdb 创建的数据库,也可以使用 cli utils 访问该数据库。反过来也是如此。
于 2008-10-12T17:08:35.630 回答