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.