Det finns flera sätt du kan göra detta på, men PreparedStatement.setBinaryStream
är förmodligen det bästa sättet.
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();
}
(Observera att jag för enkelhets skull inte inkluderade något av de nödvändiga försök/fånga sakerna för att stänga Connection
, PreparedStatement
och InputStream
, men du skulle behöva göra det.)
På detta sätt kommer data att strömmas från filen till databasen utan att behöva laddas in i minnet på en gång.