sql >> Databasteknik >  >> RDS >> Mysql

Spara en bild i MySQL från Java

Du konverterar byten[] till en sträng i din sql-sats, och du kommer att sluta med felaktig data.

Det rätta sättet att använda en BLOB skulle vara att skicka InputStream sig. Du kan använda FileInputStream du använder för att läsa 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 hämtar tillbaka den kan du på samma sätt få en InputStream från ResultSet :

InputStream imgStream = resultSet.getBinaryStream(2); 



  1. SQL Server:Isolationsnivå läcker över poolade anslutningar

  2. MySQL - Hitta punkter inom radie från databasen

  3. Atomic Increment med Entity Framework

  4. Hur man deklarerar användardefinierat undantag med hjälp av en undantagsvariabel i Oracle-databasen