Есть ли способ вернуть «нормальный» набор результатов вместо набора строк из NamedParameterJdbcTemplate
? Набор строк использует слишком много памяти.NamedParameterJdbcTemplate с очень большими наборами строк
Я создаю приложение для запроса базы данных, возвращая результаты как файл excel. Результаты могут составлять до миллиона строк с 20 столбцами.
Я использую класс NamedParameterJdbcTemplate
, чтобы избежать использования '?', Что очень удобно.
Это мой код:
NamedParameterJdbcTemplate jdbcTemplate = new NamedParameterJdbcTemplate(dataSource);
MapSqlParameterSource paramSource = new MapSqlParameterSource();
paramSource.addValue("name", name);
writeExcel(jdbcTemplate.queryForRowSet(pQuery, paramSource), pOutputStream);
Однако queryForRowset
считывает весь набор строк в памяти, прежде чем продолжать. В классическом JDBC вы просто открываете набор результатов и читаете строку за строкой, сохраняя соединение открытым, но сохраняя память.