Du konverterar byten[] till en sträng i din sql-sats, och du kommer att sluta med felaktig data.
Det rätta sättet att använda en BLOB skulle vara att skicka InputStream
sig. Du kan använda FileInputStream
du använder för att läsa filen.
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() );
När du hämtar tillbaka den kan du på samma sätt få en InputStream
från ResultSet
:
InputStream imgStream = resultSet.getBinaryStream(2);