sqlステートメントでbyte[]を文字列に変換しているため、データが正しくなくなります。
BLOBを使用する正しい方法は、InputStream
を渡すことです。 自体。 FileInputStream
を使用できます ファイルの読み取りに使用しています。
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() );
それを取り戻すと、同様にInputStream
を取得できます。 ResultSet
から :
InputStream imgStream = resultSet.getBinaryStream(2);