J'ai stocké un Blob (fichier PNG) dans la base de données comme suit :
File file = new File( "image.png" );
FileInputStream fis = new FileInputStream( file );
statement.setBinaryStream( 1, fis, (int) file.length() );
Actuellement, j'utilise ce processus pour récupérer l'image Blob de la base de données et la reconvertir en image pour l'utiliser :
Blob blob = results.getBlob( 1 );
ImageIcon imageIcon = new ImageIcon( blob.getBytes( 1L, (int) blob.length() ) );
Cependant, j'ai besoin d'une méthode pour remettre l'image dans la base de données (après l'avoir modifiée) à partir de l'ImageIcon sans créer un fichier, le stocker sur le disque puis le relire avec le FileInputSteam.
modifier pour plus de clarté Supposons que l'image soit stockée dans une étiquette en tant qu'ImageIcon. La seule façon que je connaisse de la mettre dans la base de données est de la lire à partir d'un FileInputStream, mais cela impliquerait de créer inutilement un fichier de l'image. Alors comment puis-je lire l'image de l'ImageIcon en tant que flux binaire ou Blob dans la base de données ?