4

我有一个由 C 实现(python bsddb 模块)创建的 berkeley db 文件(*.bdb)。是否可以通过 Berkeley Db 的纯 Java 实现来读取此文件?我尝试使用 berkeley db java edition (je) 阅读它,但不能。je 抛出一个异常,说它无法检测到 berkeley 数据库。berkeley db 文件是否不能跨不同的实现互操作?如果是这样,为什么?

4

3 回答 3

5

不。

根据Berkeley DB Java 版常见问题解答,Berkeley DB 和 Berkeley DB Java 版彼此不兼容,因为它们具有不同的文件布局结构。

于 2008-10-12T17:27:25.827 回答
2

请注意,共有三种不同的产品

  1. Berkeley DB——C 实现
  2. 伯克利数据库 Java 版
  3. 伯克利数据库 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 回答