Bạn đang chuyển đổi byte [] thành một chuỗi trong câu lệnh sql của mình và bạn sẽ nhận được dữ liệu không chính xác.
Cách phù hợp để sử dụng BLOB là chuyển InputStream
chinh no. Bạn có thể sử dụng FileInputStream
bạn đang sử dụng để đọc tệp.
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() );
Khi lấy lại, bạn cũng có thể nhận được một InputStream
tương tự từ ResultSet
:
InputStream imgStream = resultSet.getBinaryStream(2);