Le pilote Oracle JDBC prend en charge correctement le setFetchSize()
méthode sur java.sql.Statement
, qui vous permet de contrôler le nombre de lignes que le pilote récupère en une seule fois.
Cependant, RowMapper
tel qu'utilisé par Spring fonctionne en lisant chaque ligne en mémoire, en obtenant le RowMapper
pour le traduire en objet et stocker l'objet de chaque ligne dans une grande liste. Si votre ensemble de résultats est volumineux, cette liste s'allongera, quelle que soit la manière dont JDBC récupère les données de la ligne.
Si vous devez gérer de grands ensembles de résultats, RowMapper n'est pas évolutif. Vous pourriez envisager d'utiliser RowCallbackHandler
à la place, avec les méthodes correspondantes sur JdbcTemplate. RowCallbackHandler
ne dicte pas comment les résultats sont stockés, vous laissant le soin de les stocker.