Está convirtiendo el byte[] en una cadena en su instrucción sql y terminará con datos incorrectos.
La forma correcta de usar un BLOB sería pasar el InputStream
sí mismo. Puede usar el FileInputStream
está usando para leer el archivo.
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() );
Cuando lo recupera, puede obtener de manera similar un InputStream
del ResultSet
:
InputStream imgStream = resultSet.getBinaryStream(2);