Oracle JDBCドライバーは、setFetchSize()を適切にサポートしています。 java.sql.Statementのメソッド 、これにより、ドライバーが一度にフェッチする行数を制御できます。
ただし、RowMapper Springで使用されているように、各行をメモリに読み込み、RowMapperを取得します。 それをオブジェクトに変換し、各行のオブジェクトを1つの大きなリストに格納します。結果セットが巨大な場合、JDBCが行データをフェッチする方法に関係なく、このリストは大きくなります。
大きな結果セットを処理する必要がある場合、RowMapperはスケーラブルではありません。 RowCallbackHandlerの使用を検討してください。 代わりに、JdbcTemplateの対応するメソッドとともに。 RowCallbackHandler 結果の保存方法を指示するものではなく、保存するのはあなたに任されています。