JdbcTemplate setFetchSize 分批拉取数据的效果确认方法
用 Spring 的JdbcTemplate流式导出大数据量(几十万行写 CSV)时,标准做法是在PreparedStatement上设setFetchSize,希望驱动按批拉取、内存里只驻留少量行。但rs.getFetchSize()只是回显了设置值,堆内存该涨还是涨。怎么确认分批真的生效了,本文给出可操作的验证手段与常见诱因。问题现象典型代码如下,用PreparedStatementCreator回调创建语句并设置批大小,行回调里逐行写入 CSV:@Transactional(readOnly=true)privatevoidfetchAndProcess(