Er zijn verschillende manieren waarop u dit kunt doen, maar PreparedStatement.setBinaryStream
is waarschijnlijk de beste manier.
public void saveFileToDatabase(File file) {
InputStream inputStream = new FileInputStream(file);
Connection conn = ...;
PreparedStatement pS = conn.prepareStatement(...);
...
pS.setBinaryStream(index, inputStream, (int) file.length());
...
pS.executeUpdate();
}
(Merk op dat ik voor de eenvoud geen van de noodzakelijke try/catch-dingen heb toegevoegd voor het sluiten van de Connection
, PreparedStatement
en InputStream
, maar dat zou je wel moeten doen.)
Op deze manier worden de gegevens van het bestand naar de database gestreamd zonder dat ze in één keer in het geheugen hoeven te worden geladen.