मैं अपने कार्यक्रम में एचएसक्यूएलडीबी का उपयोग कर रहा हूं। मैं जांचना चाहता हूं कि मेरा परिणाम सेट खाली है या नहीं।जांचें कि जावा में परिणामसेट खाली है
//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);
जोड़ने की भी कोशिश की लेकिन मुझे अभी भी वही परिणाम मिल गया है (मुझे संदेश खाली है और डीबी से डेटा !!!) मैं यहां क्या गलत कर रहा हूं?
क्या समस्या है? एक अवलोकन: 'results.next() 'पहली बार कॉल करने पर कर्सर को पहली पंक्ति में ले जाता है (' if' में)। इसलिए, यदि डेटा है, तो आपकी लूप लूप की स्थिति दूसरी पंक्ति में स्थानांतरित हो जाएगी जब यह प्रभावी रूप से पहली पंक्ति को छोड़ने लगती है। आप इसके बजाए एक डू-लूप लूप का उपयोग कर सकते हैं। – Abhi
आपके द्वारा लिंक किए गए प्रश्न में 'FORWARD_ONLY' परिणामों के उत्तर भी हैं (उदाहरण: स्वीकृत उत्तर)। –