Oracle
 sql >> Database >  >> RDS >> Oracle

Supporto JDBC primaverile e set di dati di grandi dimensioni

Il driver Oracle JDBC ha un supporto adeguato per setFetchSize() metodo su java.sql.Statement , che ti consente di controllare quante righe il driver recupererà in una volta sola.

Tuttavia, RowMapper come usato da Spring, leggendo ogni riga in memoria, ottenendo il RowMapper per tradurlo in un oggetto e memorizzare l'oggetto di ogni riga in un grande elenco. Se il tuo set di risultati è enorme, questo elenco diventerà grande, indipendentemente da come JDBC recupera i dati della riga.

Se devi gestire set di risultati di grandi dimensioni, RowMapper non è scalabile. Potresti prendere in considerazione l'utilizzo di RowCallbackHandler invece, insieme ai metodi corrispondenti su JdbcTemplate. RowCallbackHandler non determina come vengono archiviati i risultati, lasciando a te la possibilità di archiviarli.