Images: mysql->java->mysql

rogi1

Grünschnabel
Hallo Leute!
Ich möchte ein Programm schreiben, welches datensätze (auch bilder) aus mysql ausliest, diese anzeigt und bei bedarf andere wieder speichert.
also los:

Code:
InputStream is = resultset.getBinaryStream("Bild")
BufferedImage imx = ImageIO.read(is)

funktioniert ja wunderbar
jetzt zeige ich die Grafik gleich in einem Label an (auch kein Problem).

doch dann:
Wie schreibe ich das Icon zurück in ein Image
Viele versuche blieben erfolglos.

dann halt anders:
ich speichere das bild (bufferedImage) in meiner Klasse mit und aktualisiere aus diesem bild mein Icon.
Doch wie schreibe ich jetzt dieses Buffered Image zurück in die Datenbank? weil:
Code:
imageIO.read(bufferedImage image,"jpg",outputstream os)
verlangt einen OutputStream von mir

und
Code:
PreparedStatment.setBinaryStream(1,InputStream);
verlangt aber einen InputStream

Ich brauch also was dazwischen, wass mir die daten speichert...
Blob:

mit
Code:
connection.createBlob()
krieg ich aber den fehler: unsupportet irgendwas....
wieder nix.

neja dann, nehm ich halt die Streams, und übergebe/speichere sie in meinen Objekten, damit ich diese immer zur verfügung habe (sprich wenn eine neue grafik übergeben wurde, diesen Stream als inputStream bei der Datenbank angeben.
nur leider sollte ich diesen Stream 2x auslesen, weil ich ja die grafik nicht nur anzeigen sollte, sondern auch speichern.
mit mark(int) und Reset funktioniert ja bei InputStreams nicht, oder muss ich da villeicht mit FileInputStream arbeiten..
die datei 2 mal öffnen ist ja sehr unelegant, auserdem möcht ich die datei auch vor dem speichern skalieren, und da hätte ich dann schon das nächste problem......

Da sich der Code über mehrere Seiten /Klassen ersteckt, hab ich (hoffentlich ausreichend) nur die Befehle angegeben.

Langsam fang ich an, Java wieder sch**** zu finden....

danke für jede Hilfe im voraus.
 
Zurück