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