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