Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Salvando uma imagem no MySQL do Java


Você está convertendo o byte[] em uma String em sua instrução sql e acabará com dados incorretos.

A maneira correta de usar um BLOB seria passar o InputStream em si. Você pode usar o FileInputStream você está usando para ler o arquivo.
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() );

Ao recuperá-lo, você também pode obter um InputStream do ResultSet :
InputStream imgStream = resultSet.getBinaryStream(2);