# JPEG to BLOB



## geisi (10. Feb 2006)

Habe eine .jpg datei und will diese in die datenbank als mediumblob einfügen. 
wie kann ich die datei in einen java.sql.Blob umwandeln?


----------



## Bert Brenner (10. Feb 2006)

Wenn denn wirklich Bilder in die Datenbank sollen:

SerialBlob hat einen Konstruktor dem man ein byte[] übergeben kann.


----------



## geisi (10. Feb 2006)

1.: wie bekomme ich die datei in ein byte-Array (byte[])?
2.: wie bekomme ich dann die SerialBlob in einen Blob?


----------



## Bert Brenner (10. Feb 2006)

1. 

```
File file = new File(dateiname);
InputStream inputStream = new FileInputStream(f);
new byte[] result = new byte[file.length()];
in.read(result);
in.close();
```

2.
Ein Blob ist nur ein Interface welches von SerialBlob implementiert wird.

3. Hätte SerialBlob sogar die möglichkeit via Stream befüllt zu werden.


----------



## geisi (10. Feb 2006)

byte[] result = new byte[file.length()];   gibt den fehler:  possible loss of precision


was heißt das?


----------



## Bert Brenner (10. Feb 2006)

file.length() gibt einen Wert vom Typ long zurück, wohingegen in den eckigen Klammern ein int gefragt ist.

Du musst also casten und im Hinterkopf behalten das es hier zu Problemen kommen kann wenn die Datei größer als 2147483647 bytes sein sollte.


----------



## geisi (10. Feb 2006)

wie baue ich jetzt den serialblob in den sql befehl ein?

mit 
	
	
	
	





```
String sql = "INSERT INTO mitarbeiter (bild) VALUES ('"+serialBlob.toString+"');";
```
 funktionierts nicht


----------



## Bert Brenner (10. Feb 2006)

Schau dir mal PreparedStatement#setBlob an.

Währst du leicht drauf gekommen wenn du mal in der API die beschreibung des Interfaces Blob angeschaut hättest.


----------

