我可以使用oracle berkeley db java edition的c实现(python bsddb)创建的bdb(berkeley db)文件吗?

时间:2008-10-12 16:23:31

标签: compatibility berkeley-db language-interoperability

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

3 个答案:

答案 0 :(得分:5)

没有

根据Berkeley DB Java Edition FAQ,Berkeley DB和Berkeley DB Java版彼此不兼容,因为它们具有不同的文件布局结构。

答案 1 :(得分:2)

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

  1. Berkeley DB - C实现
  2. Berkeley DB Java Edition
  3. Berkeley DB XML
  4. Wikipedia

    “Berkeley DB”和“Berkeley DB Java Edition”确实具有不同(即不兼容)的文件格式。但是,“Berkeley DB”产品确实通过JNI提供Java API。因此,可以从Java访问由C实现编写的数据文件,但不能使用“Berkeley DB Java Edition”访问。

答案 2 :(得分:0)

我没有研究确切的答案,但我有相同的经验。使用pythons bdb创建的数据库,也可以使用cli utils访问,Java API根本检测不到。反过来也是如此。