我有一个berkeley db文件(* .bdb),它由C实现(python bsddb模块)创建。是否可以通过Berkeley Db的纯Java实现读取此文件?我尝试使用berkeley db java edition(je)读取它,但不能。 je抛出一个例外,说它无法检测到伯克利数据库。 berkeley数据库文件在不同的实现中是不可互操作的吗?如果是这样,为什么?
答案 0 :(得分:5)
没有
根据Berkeley DB Java Edition FAQ,Berkeley DB和Berkeley DB Java版彼此不兼容,因为它们具有不同的文件布局结构。
答案 1 :(得分:2)
请注意,有三种不同的产品
“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根本检测不到。反过来也是如此。