Existuje několik způsobů, jak to udělat, ale PreparedStatement.setBinaryStream
je pravděpodobně nejlepší způsob.
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();
}
(Všimněte si, že pro jednoduchost jsem nezahrnul nic z nezbytných věcí pro pokus/úlovek pro uzavření Connection
, PreparedStatement
a InputStream
, ale to byste museli udělat.)
Tímto způsobem budou data streamována ze souboru do databáze, aniž by bylo nutné je načítat do paměti všechna najednou.