sql >> Database teknologi >  >> RDS >> Mysql

Gemmer et billede i MySQL fra Java

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



  1. Indsæt efter afkortning start fra 1; men indsæt efter sletning genoptages fra forrige værdi

  2. JPA Tabelnavne med store bogstaver

  3. Naturlig (menneskelig alfanumerisk) sortering i Microsoft SQL 2005

  4. Hvad er data og information og datamængder