Dafür gibt es mehrere Möglichkeiten, aber PreparedStatement.setBinaryStream
ist wahrscheinlich der beste Weg.
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();
}
(Beachten Sie, dass ich der Einfachheit halber nichts von dem notwendigen Try/Catch-Zeug zum Schließen der Connection
eingefügt habe , PreparedStatement
und InputStream
, aber das müssten Sie tun.)
Auf diese Weise werden die Daten aus der Datei in die Datenbank gestreamt, ohne dass sie auf einmal in den Speicher geladen werden müssen.