U converteert de byte[] naar een tekenreeks in uw sql-instructie en u krijgt onjuiste gegevens.
De juiste manier om een BLOB te gebruiken is om de InputStream
. door te geven zelf. U kunt de FileInputStream
. gebruiken u gebruikt om het bestand te lezen.
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() );
Wanneer u het terughaalt, kunt u op dezelfde manier een InputStream
. krijgen uit de ResultSet
:
InputStream imgStream = resultSet.getBinaryStream(2);