我可以使用oracle berkeley db java edition的c实现(python bsddb)创建的bdb(berkeley db)文件吗?
-
10-07-2019 - |
题
我有一个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版彼此不兼容,因为它们具有不同的文件布局结构。
其他提示
请注意,有三种不同的产品
- Berkeley DB - C实现
- Berkeley DB Java Edition
- Berkeley DB XML 醇>
请参阅维基百科
确实<!>“Berkeley DB <!>”;和<!>“Berkeley DB Java版<!>”;具有不同(即不兼容)的文件格式。但是,<!>“Berkeley DB <!>”;产品确实通过JNI提供Java API。因此,可以从Java访问由C实现编写的数据文件,但不能使用<!>“Berkeley DB Java Edition <!>”来访问。
我没有研究确切的答案,但我有相同的经验。使用pythons bdb创建的数据库,也可以使用cli utils访问,Java API根本检测不到。反过来也是如此。
不隶属于 StackOverflow