Я использую Apache POI SXSSFWorkbook для создания таблицы Excel. Excel, но вместо ее загрузки мне нужно сохранить этот файл в blob. Я также нуждаюсь в этом, чтобы иметь возможность масштабирования, поэтому, если у меня есть 600 000+ записей, помещенных в файл, мне нужно избежать ошибки из памяти. Вот кодЛучший способ сохранить SXSSFWorkbook в blob?
SXSSFWorkbook workbook = new SXSSFWorkbook(100);
addContent();
Обычно при выводе в файл, что я делаю что-то вроде
OutputStream output = response.getOutputStream();
workbook.write(output);
Но в данном случае я не нужно идти в файл, только в сгусток на базе , за исключением того, что нет возможности сохранить SXSSFWorkbook в блобе. Я мог бы сохранить книгу в OutputStream и попытаться сохранить ее в blob, но обычно вам нужен inputStream. Есть ли утилита для преобразования outputStream в inputStream?
не уверен, как blobs обрабатываются в спящем режиме, но по крайней мере стандартный blob api предоставляет вам [метод] (http://docs.oracle.com/javase/6/docs/api/java/sql/Blob .html # setBinaryStream (long)) – kiwiwings
Почему бы не написать 'ByteArrayOutputStream', а затем вызвать' getBytes() 'и передать их в базу данных? – Gagravarr
'ByteArrayOutputStream' помещает все в память, поэтому большие файлы могут не работать. – overflower