Я хочу хранить изображения в Db4o с помощью Blobs. Как я могу хранить их и как их получить снова?Db4o, Java: Сохранение изображений с использованием blobs
1
A
ответ
3
Взгляните на этот вопрос отвечают: How to stores and Pictures in Db40?
Я снова перепечатывать мой ответ, немного обновленный со ссылками на документацию Java:
Есть two basic ways обрабатывать Blobs. Либо вы храните blob в качестве байтового массива в базе данных, либо используете специальный тип db4o-Blob. Оба имеют свои преимущества.
Преимущества/недостатки с байтовый массив:
- Капли находятся в db4o-базе данных-файла. Таким образом, есть только один файл для копирования.
- Байт-массивы являются частью обычной транзакции db4o и ведут себя так, как ожидалось.
- При хранении больших капель, вы можете столкнуться с database-size limitation of db4o. (256 Гб)
Преимущество/Обездоленное с db4o-блобовым
- Капли хранится в виде обычных файлов вне базы данных. Это делает базу данных самой маленькой. Кроме того, вы можете получить доступ ко всем сохраненным блокам с помощью обычного приложения.
- Вам всегда нужно скопировать каталог blob и базу данных.
- db4o-blobs работает вне транзакции db4o. Это означает, что db4o-blob ведет себя иначе, чем любой другой сохраненный объект (и API немного странно). Однако это позволяет получить db4o-blob без блокировки текущей транзакции.
Для вашего случая я бы сохранил массив byte [] с изображением в классе Person. Или вы создаете специальный Image-класс. Этот образ-класс содержит тогда байтовый массив с изображением. И несколько методов для преобразования этого байтового массива из и в Winforms-bitmap.