Anda mengonversi byte[] menjadi String dalam pernyataan sql Anda, dan Anda akan mendapatkan data yang salah.
Cara yang tepat untuk menggunakan BLOB adalah dengan melewatkan InputStream
diri. Anda dapat menggunakan FileInputStream
Anda gunakan untuk membaca file.
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() );
Saat Anda mengambilnya kembali, Anda juga bisa mendapatkan InputStream
dari ResultSet
:
InputStream imgStream = resultSet.getBinaryStream(2);