Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Speichern eines Bildes in MySQL von Java

Sie wandeln das Byte[] in Ihrer SQL-Anweisung in einen String um und erhalten am Ende falsche Daten.

Der richtige Weg, ein BLOB zu verwenden, wäre, den InputStream zu übergeben selbst. Sie können den FileInputStream verwenden Sie verwenden, um die Datei zu lesen.

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

Wenn Sie es zurückholen, können Sie auf ähnliche Weise einen InputStream erhalten aus dem ResultSet :

InputStream imgStream = resultSet.getBinaryStream(2);