# ImageIcon in/aus Datenbank speichern/lesen



## Leeprasteen (28. Jul 2004)

ich erzeuge aus einer bild-datei ein ImageIcon-Objekt und möchte das in einer Access-DB speichern.
wie übergebe ich das objekt im sql-string? und wie rufe ich es wieder ab!?
vielen dank im voraus!


----------



## nollario (28. Jul 2004)

```
PreparedStatement.setObject(int index, Object o)
und ResultSet.getObject(int index)
```

sollte doch gehen? dein image müsste allerdings serialisierbar sein... ansonste müsstest du das objekt "händisch" in einen byte array verwandeln


----------



## Leeprasteen (29. Jul 2004)

also über setObject funktioniert es leider nicht - das führt zu einem Datenbankfehler wegen unbekanntem SQL Type.
hat jemand ein codebeispiel für die umwandlung in ein byte-array oder ne andere lösung?
thx!


----------



## nollario (29. Jul 2004)

schau mal da bei bytearrayoutputstream:

http://www.galileocomputing.de/open...esindenStromschreibenmitByteArrayOutputStream


----------



## Leeprasteen (30. Jul 2004)

problem war das man nen output- in nen inputstream umwandeln musste - sonst gehts nicht
so funktionierts jetzt: 
	
	
	
	





```
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream in = new ObjectOutputStream(baos);
in.writeObject(Icon);
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
stmt.setBinaryStream(1, bais, bais.available());
stmt.setInt(2, 1);
stmt.execute();
stmt.close();
```

abrufen lässt sich das ganze dann wieder mit:
	
	
	
	





```
InputStream is = result.getBinaryStream("Icon");
ObjectInputStream test = new ObjectInputStream(is);
Icon = (ImageIcon)test.readObject();
```


----------

