Ada beberapa cara untuk melakukannya, tetapi PreparedStatement.setBinaryStream
mungkin cara terbaik.
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();
}
(Perhatikan bahwa untuk kesederhanaan saya tidak menyertakan hal-hal coba/tangkap yang diperlukan untuk menutup Connection
, PreparedStatement
dan InputStream
, tetapi Anda harus melakukannya.)
Dengan cara ini, data akan dialirkan dari file ke database tanpa harus dimuat ke memori sekaligus.