tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
2641
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    ARadauer ARadauer ist offline Mitglied
    Registriert seit
    Apr 2007
    Beiträge
    21
    Hallo ich habe hier ein Objekt, das ein Dokument repräsentiert, dass als Blob in eine Datenbank gespeichert werden soll.

    Die Daten ansich halte ich als byte[], jetzt bin ich leider an meine ersten Versuche gescheitert um so Bilder zu speichern.

    Ich konnte den Fehler schon einigermassen eingrenzen, nur weiß nicht nicht genau, wo es bei den folgenden Schritten hapert und wie ich sie ersetzen kann.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    //image ist ein BufferedImage, zu diesem Zeitpunkt noch ok
    dokument.setData(((DataBufferByte) image.getData().getDataBuffer()).getData());
     
    //die daten werden als byte Array gehalten
    public void setData(byte[] data) {
           this.data = data;
    }
     
    //so hänge ich die Daten ins Prepared Statement
    prepareStatement.setObject(7, dokument.getData());

    der Typ in der DB ist ein Blob

    Über Toad habe ich schon Testbilder in die DB eingefügt, die werden von meinem Ausgabe Servlet brav angezeigt, nur die Bilder die ich selber in die DB schreibe, wollen nicht....
    jemand eine Idee wo ich ausbessern soll?
     

  2. #2
    SotDNeo SotDNeo ist offline Grünschnabel
    Registriert seit
    Jul 2005
    Ort
    GE (NRW)
    Beiträge
    3
    Hallo,

    ich habe Bilder in eine Oracle DB mit der Funktion setBlob geschoben. Diese Funtkion gibt es bei PreparedStatement und bei CallableStatement.

    Gruß
    Daniel
     
    2b OR NOT 2b IS FF

  3. #3
    ARadauer ARadauer ist offline Mitglied
    Registriert seit
    Apr 2007
    Beiträge
    21
    danke ich hab das geändert. hat aber leider nichts geholfen

    der eigentliche Fehler lag hier

    "((DataBufferByte) image.getData().getDataBuffer()).getData());"

    ich hab das durch das ersetzt und jetzt gehts

    Code :
    1
    2
    3
    4
    5
    6
    
    public static byte[] bufferedImageToByteArray(BufferedImage img) throws ImageFormatException, IOException{
            ByteArrayOutputStream os = new ByteArrayOutputStream();
            JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(os);
            encoder.encode(img);
            return os.toByteArray();    
        }

    Schöne Grüße
     

Ähnliche Themen

  1. Byte Array in MySQL Datenbank schreiben/auslesen
    Von hebel2 im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 5
    Letzter Beitrag: 28.09.10, 15:49
  2. Antworten: 5
    Letzter Beitrag: 22.02.10, 12:05
  3. Byte[] in SQL Datenbank speichern und auslesen
    Von awaiK im Forum .NET Datenverwaltung
    Antworten: 3
    Letzter Beitrag: 05.10.08, 14:48
  4. Antworten: 0
    Letzter Beitrag: 16.04.08, 15:28
  5. Blob/Clob erzeugen und in Datenbank Speichern
    Von C4rter im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 0
    Letzter Beitrag: 16.12.07, 00:26