Panorama: ho una tabella, semplice semplice, in cui salvo id, nome e bytecode di alcune immagini.
Dato per scontato di aver eseguito la connessione (in conn) a database, quindi lancio la query e leggo il risultato (estraggo quindi l'immagine dal database)
Per l'inserimento invece:codice:PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM IMAGES WHERE ID=1"); ResultSet rs = pstmt.executeQuery(); //estrazione while (rs.next()) { OutputStream fos = new java.io.FileOutputStream(new File("new_" + rs.getString("name"))); InputStream fin = rs.getBinaryStream("img"); byte[] b = new byte[fin.available()]; fin.read(b); fos.write(b); fos.flush(); fos.close(); }
E' il codice tratto dal sito della sun, però da quando hanno messo mano alla documentazione, l'articolo da cui l'ho pescato non lo trovo più... ci sono altri articoli (reference & learning) cercando le chiavi "sql", "blob" e similicodice:File file = new File("immagine.jpg"); InputStream fin = new java.io.FileInputStream(file); int fileLength = (int)file.length(); PreparedStatement pstmt = conn.prepareStatement("INSERT INTO IMAGES (NAME, IMG) "+"VALUES (?, ?)"); pstmt.setString(1, file.getName()); pstmt.setBinaryStream (2, fin, fileLength); pstmt.executeUpdate();

Rispondi quotando