Mysql
 sql >> Database >  >> RDS >> Mysql

Salvataggio di un'immagine in MySQL da Java

Stai convertendo il byte[] in una stringa nella tua istruzione sql e ti ritroverai con dati errati.

Il modo giusto per usare un BLOB sarebbe passare il InputStream si. Puoi usare il FileInputStream stai usando per leggere il file.

File image = new File(path);
FileInputStream fis = new FileInputStream ( image );

String sql="insert into imgtst (username,image) values (?, ?)";
pst=con.prepareStatement(sql);

pst.setString(1, user);
pst.setBinaryStream (2, fis, (int) file.length() );

Quando lo recuperi, puoi ottenere allo stesso modo un InputStream dal ResultSet :

InputStream imgStream = resultSet.getBinaryStream(2);