MySQL Connector/J के लिए डिफ़ॉल्ट व्यवहार ResultSet
. की संपूर्ण सामग्री को लोड करना है स्मृति में जैसे ही .executeQuery
कहा जाता है। इसलिए, भले ही हमारा ResultSet
है TYPE_FORWARD_ONLY
MySQL JDBC डेवलपर्स ने स्पष्ट रूप से "अच्छा" होने का फैसला किया और हमें .first
. का उपयोग करने की अनुमति दी , .absolute
, आदि उस स्थिति में (क्योंकि संपूर्ण ResultSet
स्मृति में है और आसानी से उपलब्ध है), भले ही JDBC युक्ति कहती है
हालांकि, ध्यान दें कि यदि संपूर्ण ResultSet
स्मृति में होने की गारंटी नहीं है, उदाहरण के लिए, यदि हम st.setFetchSize(Integer.MIN_VALUE)
का उपयोग करते हैं ResultSet
. को "स्ट्रीम" करने के लिए जैसे ही हम इसके माध्यम से स्क्रॉल करते हैं, तो MySQL Connector/J हमें .next
के अलावा कुछ भी उपयोग नहीं करने देगा। या हम प्राप्त करेंगे
com.mysql.jdbc.OperationNotSupportedException: Operation not supported for streaming result sets