sql >> Base de Datos >  >> RDS >> Oracle

Compatibilidad con Spring JDBC y gran conjunto de datos

El controlador Oracle JDBC tiene soporte adecuado para setFetchSize() método en java.sql.Statement , que le permite controlar cuántas filas obtendrá el controlador de una sola vez.

Sin embargo, RowMapper como lo usa Spring, funciona leyendo cada fila en la memoria, obteniendo el RowMapper para traducirlo en un objeto y almacenar el objeto de cada fila en una gran lista. Si su conjunto de resultados es enorme, entonces esta lista crecerá, independientemente de cómo JDBC obtenga los datos de la fila.

Si necesita manejar grandes conjuntos de resultados, entonces RowMapper no es escalable. Podría considerar usar RowCallbackHandler en su lugar, junto con los métodos correspondientes en JdbcTemplate. RowCallbackHandler no dicta cómo se almacenan los resultados, dejando que usted los almacene.