2010-09-12 63 views

回答

3

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

我再次转贴我的回答,有点与链接到Java文档更新:

two basic ways处理斑点。要么将数据库中的Blob存储为字节数组,要么使用特殊的db4o-Blob-Type。两者都有其优点。

优点/缺点与字节数组:

  • 的斑点是在db4o的数据库文件。所以只有一个文件需要复制。
  • 字节数组是正常db4o事务的一部分,并且按预期运行。
  • 当存储较大的斑点时,可能会遇到database-size limitation of db4o。 (256 GB)

优势/弱势使用db4o-斑点

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

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