Mysql
 sql >> Base de données >  >> RDS >> Mysql

Enregistrer une image dans MySQL à partir de Java

Vous convertissez l'octet [] en une chaîne dans votre instruction sql et vous vous retrouverez avec des données incorrectes.

La bonne façon d'utiliser un BLOB serait de passer le InputStream lui-même. Vous pouvez utiliser le FileInputStream que vous utilisez pour lire le fichier.

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() );

Lorsque vous le récupérez, vous pouvez également obtenir un InputStream du ResultSet :

InputStream imgStream = resultSet.getBinaryStream(2);