sql >> Base de Datos >  >> RDS >> Mysql

Guardar una imagen en MySQL desde Java

Está convirtiendo el byte[] en una cadena en su instrucción sql y terminará con datos incorrectos.

La forma correcta de usar un BLOB sería pasar el InputStream sí mismo. Puede usar el FileInputStream está usando para leer el archivo.

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() );

Cuando lo recupera, puede obtener de manera similar un InputStream del ResultSet :

InputStream imgStream = resultSet.getBinaryStream(2);