Oracle JDBC ड्राइवर के पास setFetchSize()
. के लिए उचित समर्थन है java.sql.Statement
पर विधि , जो आपको यह नियंत्रित करने की अनुमति देता है कि ड्राइवर एक बार में कितनी पंक्तियाँ लाएगा।
हालांकि, RowMapper
जैसा कि स्प्रिंग द्वारा उपयोग किया जाता है, प्रत्येक पंक्ति को मेमोरी में पढ़कर, RowMapper
. प्राप्त करके काम करता है इसे किसी वस्तु में अनुवाद करने के लिए, और प्रत्येक पंक्ति की वस्तु को एक बड़ी सूची में संग्रहीत करना। यदि आपका परिणाम सेट बहुत बड़ा है, तो यह सूची बड़ी हो जाएगी, भले ही JDBC पंक्ति डेटा कैसे प्राप्त करे।
यदि आपको बड़े परिणाम सेट को संभालने की आवश्यकता है, तो RowMapper स्केलेबल नहीं है। आप RowCallbackHandler
. का उपयोग करने पर विचार कर सकते हैं इसके बजाय, JdbcTemplate पर संबंधित विधियों के साथ। RowCallbackHandler
परिणामों को संग्रहीत करने के तरीके को निर्धारित नहीं करता है, उन्हें संग्रहीत करने के लिए आप पर छोड़ दिया जाता है।