Db4o,Java:使用blob存储图像

时间:2010-09-12 10:50:51

标签: java blob db4o

我想使用Blob将图像存储在Db4o中。我该如何存储它们以及如何再将它们取出来?

1 个答案:

答案 0 :(得分:3)

看一下这个问题的答案:How to stores and Pictures in Db40?

我再次重新发布我的答案,稍微更新了Java文档的链接:

two basic ways来处理Blob。您可以将blob作为字节数组存储在数据库中,也可以使用特殊的db4o-Blob-Type。两者都有其优点。

字节数组的优点/缺点:

  • blob位于db4o-database-file中。因此,只有一个文件可供复制。
  • 字节数组是正常db4o事务的一部分,其行为符合预期。
  • 存储大blob时,您可能会遇到database-size limitation of db4o。 (256 GB)

db4o-blobs的优点/不足

  • blob存储为数据库外的常规文件。这使数据库本身变小。此外,您只需使用常规应用程序即可访问所有存储的blob。
  • 您始终需要复制blob目录和数据库。
  • db4o-blobs在db4o事务之外工作。这意味着db4o-blob的行为与任何其他存储对象不同(并且API有点奇怪)。但是,这允许在不阻止当前事务的情况下检索db4o-blob。

对于你的情况,我会在Person类中存储一个带有图片的byte []数组。或者您创建一个特殊的Image类。这个图像类包含一个带图片的字节数组。以及一些将此字节数组转换为Winforms-bitmap的方法。