समस्या getStuff()
. में डेटा लाने के तरीके में है . हर बार जब आप getStuff()
पर जाते हैं आपको एक नया ResultSet
प्राप्त होता है लेकिन आप इसे बंद नहीं करते।
यह Statement
. की अपेक्षा का उल्लंघन करता है क्लास (यहां देखें - http://docs. oracle.com/javase/7/docs/api/java/sql/Statement.html
):
डिफ़ॉल्ट रूप से, प्रति स्टेटमेंट ऑब्जेक्ट में केवल एक ResultSet ऑब्जेक्ट एक ही समय में खुला हो सकता है। इसलिए, यदि एक ResultSet ऑब्जेक्ट की रीडिंग दूसरे के रीडिंग के साथ इंटरलीव की जाती है, तो प्रत्येक को अलग-अलग स्टेटमेंट ऑब्जेक्ट द्वारा उत्पन्न किया जाना चाहिए। स्टेटमेंट इंटरफ़ेस में सभी निष्पादन विधियाँ किसी स्टेटमेंट के वर्तमान ResultSet ऑब्जेक्ट को परोक्ष रूप से बंद कर देती हैं यदि कोई खुला मौजूद है।
rs
. जो चीज चीजों को और भी खराब बनाती है वह है कॉलिंग कोड से। यह statement
. से भी निकला है क्षेत्र लेकिन यह बंद नहीं है।
निचला रेखा:आपके पास कई ResultSet
. हैं उसी statement
. से संबंधित वस्तु एक साथ खोली गई।