Ci sono diversi modi per farlo, ma PreparedStatement.setBinaryStream
è probabilmente il modo migliore.
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();
}
(Nota che per semplicità non ho incluso nessuna delle cose try/catch necessarie per chiudere la Connection
, PreparedStatement
e InputStream
, ma dovresti farlo.)
In questo modo, i dati verranno trasmessi in streaming dal file al database senza dover essere caricati in memoria tutto in una volta.