Преобразувате byte[] в низ във вашия sql оператор и в крайна сметка ще получите неправилни данни.
Правилният начин за използване на BLOB би бил да предадете InputStream себе си. Можете да използвате FileInputStream който използвате за четене на файла.
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() );
Когато го извлечете обратно, можете по подобен начин да получите InputStream от ResultSet :
InputStream imgStream = resultSet.getBinaryStream(2);