Преобразувате 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);