Trình điều khiển Oracle JDBC có hỗ trợ thích hợp cho setFetchSize()
phương thức trên java.sql.Statement
, cho phép bạn kiểm soát số hàng mà trình điều khiển sẽ tìm nạp trong một lần.
Tuy nhiên, RowMapper
như được sử dụng bởi Spring hoạt động bằng cách đọc từng hàng vào bộ nhớ, lấy RowMapper
để dịch nó thành một đối tượng và lưu trữ đối tượng của mỗi hàng trong một danh sách lớn. Nếu tập hợp kết quả của bạn lớn, thì danh sách này sẽ lớn, bất kể JDBC tìm nạp dữ liệu hàng như thế nào.
Nếu bạn cần xử lý các tập kết quả lớn, thì RowMapper không thể mở rộng. Bạn có thể cân nhắc sử dụng RowCallbackHandler
thay vào đó, cùng với các phương thức tương ứng trên JdbcTemplate. RowCallbackHandler
không chỉ định cách kết quả được lưu trữ, do đó bạn tùy thuộc vào việc lưu trữ chúng.