Je souhaite stocker des images dans Db4o à l'aide de blobs. Comment puis-je les stocker et comment puis-je les sortir à nouveau?Db4o, Java: Stockage d'images à l'aide de blobs
1
A
Répondre
3
Jetez un oeil à cette réponse question: How to stores and Pictures in Db40?
republier ma réponse encore une fois, un peu mis à jour avec les liens vers la documentation Java:
Il y a two basic ways pour gérer Blobs. Soit vous stockez un blob comme byte-array dans la base de données, soit vous utilisez le db4o-Blob-Type spécial. Les deux ont leurs avantages.
Avantages/inconvénients tableau d'octets:
- Les taches sont dans le fichier-db4o-base de données. Il n'y a donc qu'un seul fichier à copier.
- Les tableaux d'octets font partie de la transaction db4o normale et se comportent comme prévu.
- Lorsque vous stockez de gros blobs, vous risquez de rencontrer le database-size limitation of db4o. (256 GB)
Avantages/désavantagées avec db4o-blobs
- Les taches sont stockées sous forme de fichiers réguliers en dehors de la base de données. Cela maintient la base de données elle-même petite. En outre, vous pouvez simplement accéder à tous les blobs stockés avec une application régulière.
- Vous devez toujours copier le répertoire blob et la base de données.
- Le db4o-blobs fonctionne en dehors de la transaction db4o. Cela signifie qu'un db4o-blob se comporte différemment de tout autre objet stocké (et l'API est un peu étrange). Cependant cela permet de récupérer un db4o-blob sans bloquer la transaction en cours.
Pour votre cas, je voudrais stocker un tableau byte [] avec l'image dans la classe Person. Ou vous créez une classe d'image spéciale. Cette classe d'image contient alors un byte-array avec l'image. Et quelques méthodes pour convertir ce byte-array depuis et vers un bitmap Winforms.