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

StackOverflow https://stackoverflow.com/questions/195657

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

有帮助吗?

解决方案

没有

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

其他提示

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

  1. Berkeley DB - C实现
  2. Berkeley DB Java Edition
  3. Berkeley DB XML
  4. 请参阅维基百科

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top