Převádíte byte[] na řetězec ve svém příkazu SQL a skončíte s nesprávnými daty.
Správným způsobem použití objektu BLOB by bylo předat InputStream
sám. Můžete použít FileInputStream
který používáte ke čtení souboru.
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() );
Když jej načtete zpět, můžete podobně získat InputStream
z ResultSet
:
InputStream imgStream = resultSet.getBinaryStream(2);