【发布时间】:2013-09-20 04:59:10
【问题描述】:
有没有办法从NamedParameterJdbcTemplate 返回“正常”结果集而不是行集?行集使用的内存过多。
我正在创建一个应用程序来查询数据库,并将结果作为 excel 文件返回。结果最多可达 100 万行,20 列。
我使用NamedParameterJdbcTemplate 类来避免使用'?',这真的很整洁。
这是我的代码:
NamedParameterJdbcTemplate jdbcTemplate = new NamedParameterJdbcTemplate(dataSource);
MapSqlParameterSource paramSource = new MapSqlParameterSource();
paramSource.addValue("name", name);
writeExcel(jdbcTemplate.queryForRowSet(pQuery, paramSource), pOutputStream);
但是,queryForRowset 在继续之前将整个行集读入内存。在经典 JDBC 中,您只需打开一个结果集并逐行读取,保持连接打开但节省内存。
【问题讨论】:
标签: java sql jdbc resultset named-parameters