我使用Hibernate与Java和PostgreSQL将大量文件存储到数据库中。我不希望文件被完全读入内存,因为我内存不足。可能最好的解决方案是读取块并将文件内容作为字节数组推送到我的DB BLOB列。
实体:
@Lob
@Column
private Blob file;
使用BinaryStream下载:
ResourceLibraryModel obj = new ResourceLibraryModel();
InputStream imgStream = obj.getFile().getBinaryStream();
上传文件:
javax.servlet.http.Part part
InputStream input = part.getFile().getInputStream();
ByteArrayOutputStream output = new ByteArrayOutputStream();
byte[] buffer = new byte[10240];
for (int length = 0; (length = input.read(buffer)) > 0;) output.write(buffer, 0, length);
obj.setFile(output.toByteArray());
你能提出一些有效的解决方案。