Driver Oracle JDBC memiliki dukungan yang tepat untuk setFetchSize()
metode pada java.sql.Statement
, yang memungkinkan Anda mengontrol berapa banyak baris yang akan diambil driver sekaligus.
Namun, RowMapper
seperti yang digunakan oleh Spring bekerja dengan membaca setiap baris ke dalam memori, mendapatkan RowMapper
untuk menerjemahkannya ke dalam sebuah objek, dan menyimpan objek setiap baris dalam satu daftar besar. Jika kumpulan hasil Anda sangat besar, maka daftar ini akan menjadi besar, terlepas dari bagaimana JDBC mengambil data baris.
Jika Anda perlu menangani kumpulan hasil yang besar, maka RowMapper tidak dapat diskalakan. Anda dapat mempertimbangkan untuk menggunakan RowCallbackHandler
sebagai gantinya, bersama dengan metode yang sesuai di JdbcTemplate. RowCallbackHandler
tidak mendikte bagaimana hasil disimpan, menyerahkannya kepada Anda untuk menyimpannya.