У меня есть вопрос, связанный с работой. Мне нужно получить около 500 строк из базы данных с целью использования POI Apache для экспорта результатов в электронную таблицу Microsoft Excel.
До сих пор для всех запросов к базе данных я заполнял объект PL/SQL на уровне базы данных, а затем возвращал этот объект PL/SQL в Java и просматривал результаты.
Но теперь, когда мне нужно вернуть такой большой результирующий набор в Java из уровня db, мне задали вопрос, действительно ли я думаю, что может быть лучше работать, чтобы вернуть 500 строк в Java через XML-Clob,
Это немного открытый вопрос, но я надеялся получить мнение людей об этом, пожалуйста.
благодаря
Согласно http://docs.oracle.com/cd/E11882_01/java.112/e16548/resltset.htm#JJDBC28621
По умолчанию, когда Oracle JDBC запускает запрос, он извлекает результирующий набор из 10 строк за раз из курсора базы данных. Это значение размера выборки строки Oracle по умолчанию. Вы можете изменить количество строк, полученных при каждой поездке, на курсор базы данных, изменив значение размера выборки строк.
Следующие методы доступны во всех объектах Statement, PreparedStatement, CallableStatement и ResultSet для настройки и получения размера выборки:
void setFetchSize(int rows) throws SQLException
int getFetchSize() throws SQLException
Используйте Java ResultSet. Это будет извлекать только несколько строк за раз, сколько вам нужно. Вот пример того, как его использовать: http://docs.oracle.com/javase/tutorial/jdbc/basics/retrieving.html В принципе, каждый раз, когда вы запрашиваете новую строку, например, в rs.next(), система JDBC решает, доступны ли данные на клиенте или их необходимо получить с сервера. Таким образом, вы не получаете сразу все данные.
Statement.setFetchSize().