これを行うにはいくつかの方法がありますが、PreparedStatement.setBinaryStream
おそらく最良の方法です。
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();
}
(簡単にするために、Connection
を閉じるために必要なtry/catchのものを含めなかったことに注意してください 、PreparedStatement
およびInputStream
、しかしあなたはそれをする必要があるでしょう。)
このようにすると、データはファイルからデータベースにストリーミングされ、一度にメモリにロードする必要はありません。