Der er flere måder, du kan gøre dette på, men PreparedStatement.setBinaryStream
er nok den bedste måde.
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();
}
(Bemærk, at jeg for nemheds skyld ikke inkluderede nogen af de nødvendige prøv/fangst ting for at lukke Connection
, PreparedStatement
og InputStream
, men du bliver nødt til at gøre det.)
Udført på denne måde vil data streames fra filen til databasen uden at skulle indlæses i hukommelsen på én gang.