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