Sie wandeln das Byte[] in Ihrer SQL-Anweisung in einen String um und erhalten am Ende falsche Daten.
Der richtige Weg, ein BLOB zu verwenden, wäre, den InputStream
zu übergeben selbst. Sie können den FileInputStream
verwenden Sie verwenden, um die Datei zu lesen.
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() );
Wenn Sie es zurückholen, können Sie auf ähnliche Weise einen InputStream
erhalten aus dem ResultSet
:
InputStream imgStream = resultSet.getBinaryStream(2);