Konwertujesz byte[] na ciąg znaków w swoim oświadczeniu sql i otrzymasz nieprawidłowe dane.
Właściwym sposobem użycia BLOB byłoby przekazanie InputStream
samo. Możesz użyć FileInputStream
używasz do czytania pliku.
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() );
Kiedy go odzyskasz, możesz w podobny sposób uzyskać InputStream
z ResultSet
:
InputStream imgStream = resultSet.getBinaryStream(2);