O driver Oracle JDBC tem suporte adequado para o
setFetchSize() método em java.sql.Statement , que permite controlar quantas linhas o driver buscará de uma só vez. No entanto,
RowMapper como usado pelo Spring funciona lendo cada linha na memória, obtendo o RowMapper para traduzi-lo em um objeto e armazenar o objeto de cada linha em uma grande lista. Se o seu conjunto de resultados for enorme, essa lista ficará grande, independentemente de como o JDBC busca os dados da linha. Se você precisar lidar com grandes conjuntos de resultados, o RowMapper não é escalável. Você pode considerar usar
RowCallbackHandler em vez disso, juntamente com os métodos correspondentes em JdbcTemplate. RowCallbackHandler não dita como os resultados são armazenados, cabendo a você armazená-los.