Има няколко начина, по които можете да направите това, но 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
, PreparedStatement
и InputStream
, но ще трябва да направите това.)
По този начин данните ще се предават поточно от файла към базата данни, без да се налага да се зареждат в паметта наведнъж.