2014-10-28 7 views
8

क्या ऐसी पंक्तियों की अधिकतम संख्या है जो एक जेडीबीसी विशेष रूप से एक हाइव क्वेरी से परिणामसेट में डाल देगा? मैं fetch आकार या पेजिंग के बारे में बात नहीं कर रहा हूं, लेकिन परिणामसेट में पंक्तियों की कुल संख्या लौटा दी गई है।क्या जेडीबीसी का अधिकतम परिणामसेट आकार है?

अगर मैं गलत हूं, तो मुझे सही करें, लेकिन fetch आकार डेटाबेस की प्रत्येक पास के साथ प्रक्रिया करने के लिए jdbc को पंक्तियों की संख्या सेट करता है, परिणामसेट में उपयुक्त प्रतिक्रिया डालने। जब यह तालिका में सभी रिकॉर्ड्स से गुजरता है, तो यह परिणाम कोड को जावा कोड पर देता है। मैं पूछ रहा हूं कि जावा कोड में लौटाई गई पंक्तियों की संख्या की सीमा है या नहीं।

यदि इसकी अधिकतम पंक्तियां नहीं हैं, तो क्या कक्षा के साथ कुछ भी निहित है जो कुछ रिकॉर्ड छीनने का कारण बन सकता है?

+0

क्या प्रोग्राम चल रहा है, परिणाम सेट ऑब्जेक्ट के पीछे डेटा अपडेट किया जा रहा है? – Barranka

+3

मुझे लगता है कि यह 'Integer.MAX_SIZE' –

+1

होगा, मुझे लगता है कि सीमा बेस क्लास के रूप में उपयोग किए जाने वाले किसी भी संग्रह प्रकार की सीमा होगी जो मुझे लगता है कि 'Integer.MAX_SIZE' http://stackoverflow.com/a/ 7632240/16959 या रिकॉर्ड्स को स्टोर करने के लिए उपलब्ध स्मृति (जो पहले कभी बाहर चलाती है) –

उत्तर

13

नहीं, यह इस तरह से काम नहीं करता है। जेडीबीसी देशी डेटाबेस के आसपास सिर्फ एक रैपर है। लेकिन या तो JDBC या डेटाबेस कर्सर काम एक ही:

  • आप डेटाबेस
  • डेटाबेस क्वेरी का विश्लेषण करती है और कर्सर (JDBC में ResulSet)
  • जब तुम लाने initializes के लिए एक क्वेरी (JDBC के माध्यम से) भेज ResultSet से डेटा, डेटाबेस सॉफ्टवेयर डेटाबेस नई पंक्तियाँ प्राप्त करने के लिए चलता है और ResultSet भरता

तो पंक्तियों एक ResultSet कर सकते हैं कि की संख्या की कोई सीमा नहीं है, और न ही पंक्तियों को एक की संख्या के जावा क्लाइंट प्रोग्राम संसाधित कर सकते हैं। एकमात्र सीमा तब आती है जब आप उदाहरण के लिए सूची तैयार करने के लिए स्मृति में सभी पंक्तियों को लोड करने का प्रयास करते हैं और क्लाइंट एप्लिकेशन मेमोरी निकालें। लेकिन यदि आप पंक्तियों को संसाधित करते हैं और उन्हें स्मृति में नहीं रखते हैं, तो कोई सीमा नहीं है (बिल्कुल जब आप फ़ाइल पढ़ते हैं तो क्या होता है)।

संबंधित मुद्दे