2014-06-25 6 views
6

मैं अपने कार्यक्रम में एचएसक्यूएलडीबी का उपयोग कर रहा हूं। मैं जांचना चाहता हूं कि मेरा परिणाम सेट खाली है या नहीं।जांचें कि जावा में परिणामसेट खाली है

//check if empty first 
if(results.next() == false){ 
System.out.println("empty"); 
} 

//display results 
while (results.next()) { 
String data = results.getString("first_name"); 
//name.setText(data); 
System.out.println(data); 
} 

उपरोक्त विधि ठीक से काम नहीं कर रही है। इस post के अनुसार मुझे कर्सर को पहली पंक्ति में आराम करने के लिए .first() या .beforeFirst() पर कॉल करना होगा, लेकिन .first() और .beforFirst() एचएसक्यूएल में समर्थित नहीं हैं। मैंने connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); जोड़ने की भी कोशिश की लेकिन मुझे अभी भी वही परिणाम मिल गया है (मुझे संदेश खाली है और डीबी से डेटा !!!) मैं यहां क्या गलत कर रहा हूं?

+2

क्या समस्या है? एक अवलोकन: 'results.next() 'पहली बार कॉल करने पर कर्सर को पहली पंक्ति में ले जाता है (' if' में)। इसलिए, यदि डेटा है, तो आपकी लूप लूप की स्थिति दूसरी पंक्ति में स्थानांतरित हो जाएगी जब यह प्रभावी रूप से पहली पंक्ति को छोड़ने लगती है। आप इसके बजाए एक डू-लूप लूप का उपयोग कर सकते हैं। – Abhi

+0

आपके द्वारा लिंक किए गए प्रश्न में 'FORWARD_ONLY' परिणामों के उत्तर भी हैं (उदाहरण: स्वीकृत उत्तर)। –

उत्तर

11

अगर मैं अपने उद्देश्य को समझते हैं, आप do while इस्तेमाल कर सकते हैं पाश

if (!results.next()) { 
    System.out.println("empty"); 
} else { 
    //display results 
    do { 
    String data = results.getString("first_name"); 
    //name.setText(data); 
    System.out.println(data); 
    } while (results.next()); 
} 

या, आप सिर्फ एक count इसलिए की तरह रख सकता है,

int count = 0; 
//display results 
while (results.next()) { 
    String data = results.getString("first_name"); 
    //name.setText(data); 
    System.out.println(data); 
    count++; 
} 
if (count < 1) { 
    // Didn't even read one row 
} 
+0

आपका पहला समाधान जादू की तरह काम करता था। धन्यवाद :) –

+0

वही है, मैंने बस इसे फंस लिया और जुनीट्स का एक गुच्छा ठीक से काम करना शुरू कर दिया। – thonnor

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