सबसे पहले, SQL को इस तरह बनाना बंद करें - पैरामीटरयुक्त SQL और एक PreparedStatement
. का उपयोग करें . आपका वर्तमान कोड SQL इंजेक्शन हमलों के लिए असुरक्षित है।
मूल रूप से, rs.next()
. पर कॉल न करें लगातार दो बार (पहले if
. में फिर while
. में )... आप अपना while
. परिवर्तित करके आसानी से ऐसा कर सकते हैं एक do/while
. में लूप करें लूप:
if (rs.next()) {
do {
System.out.print(rs.getString("idUser") + " ,");
System.out.print(rs.getString("Name") + " ,");
System.out.print(rs.getString("Email") + " ,");
System.out.println(rs.getString("country") + " .");
} while (rs.next());
}
या बस while
. है लूप, एक अलग चर के साथ यह पता लगाने के लिए कि आपने कुछ . देखा है परिणाम:
bool anyResults = false;
while (rs.next()) {
anyResults = true;
System.out.print(rs.getString("idUser") + " ,");
System.out.print(rs.getString("Name") + " ,");
System.out.print(rs.getString("Email") + " ,");
System.out.println(rs.getString("country") + " .");
}
if (!anyResults) {
JOptionPane.showMessageDialog(null, "Not Found");
}
(इसके अतिरिक्त, आपको अपना ResultSet
बंद करने के लिए संसाधनों के साथ प्रयास का उपयोग करना चाहिए आदि, और केवल stdout पर एक स्टैक ट्रेस प्रिंट करना अपवादों को संभालने का लगभग उचित तरीका नहीं है ...)