Avatar billede tommya Nybegynder
01. december 2005 - 13:54 Der er 4 kommentarer og
1 løsning

At gemme et BufferedImage i en MySQL database

Hej...

Jeg har et bufferedimage som jeg vil gemme i en mysql database hvor jeg har en kolonne af typen BLOB. Jeg har regnet ud at jeg formegentlig skal bruge et BinaryStream til at lagre dataene, men er ikke helt sikker på hvordan. Hvis nogen kunne fortælle mig det, evt. med et eksempel ville det være fint :)
Avatar billede arne_v Ekspert
01. december 2005 - 14:11 #1
Prøv at skrive til en ByteArrayOutputStream med javax.imageio og så
bruge en setBytes på en PreparedStatement
Avatar billede tommya Nybegynder
01. december 2005 - 15:00 #2
Den er ikke meget for det, jeg har følgende kode:

<pre>public void addImage(BufferedImage imgData)
{
  ByteArrayOutputStream baos = new ByteArrayOutputStream();
  BufferedOutputStream bos = new BufferedOutputStream(baos);
  try
  {
    ImageIO.write(imgData, "jpg", bos);
  }
  catch (IOException ex1)
  {
  }
  byte b[] = baos.toByteArray();
               
  try
  {
    PreparedStatement s = conn.prepareStatement(
                          "INSERT INTO pictures (picdatetime, picture) VALUES " +
                          "(NOW(), ?)");
    s.setBytes(3, b);
    s.executeUpdate();
  }
  catch (SQLException ex)
  {
  }
}</pre>

Jeg ved at billedet ligger korrekt i imgData og at den får konverteret til byte array, jeg har andre billeder i tabellen så jeg ved det kan lade sig gøre, men <pre>s.executeUpdate</pre> returnere false der er derfor et eller andet galt med det jeg laver, men kan ikke umiddelbart se hvad.

Det skal siges at det er taget fra en klasse jeg har, og jeg har testet andre inserts i andre tabeller der virker hvor det ikke er billede data.
Avatar billede tommya Nybegynder
01. december 2005 - 15:03 #3
øhm istedet for s.setBytes(3, b) står der s.setBytes(1, b) jeg fjernede nogle kolonner for at simplificere det her. så det er ikke det der gør det.
Avatar billede tommya Nybegynder
01. december 2005 - 15:06 #4
nevermind det virker smid svar :D
Avatar billede arne_v Ekspert
01. december 2005 - 18:50 #5
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester