Existem várias maneiras de fazer isso, mas
PreparedStatement.setBinaryStream
é provavelmente a melhor maneira. 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();
}
(Observe que, para simplificar, não incluí nenhum dos itens de tentativa/captura necessários para fechar a
Connection
, PreparedStatement
e InputStream
, mas você precisaria fazer isso.) Feito dessa forma, os dados serão transmitidos do arquivo para o banco de dados sem precisar ser carregados na memória de uma só vez.