Du konverterer byten[] til en streng i din sql-sætning, og du vil ende med forkerte data.
Den rigtige måde at bruge en BLOB på ville være at videregive InputStream
sig selv. Du kan bruge FileInputStream
du bruger til at læse 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 henter den tilbage, kan du på samme måde få en InputStream
fra ResultSet
:
InputStream imgStream = resultSet.getBinaryStream(2);