Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

एक पंक्ति को छोड़ने से बचना अगले () परिणामसेट की विधि

सबसे पहले, 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 पर एक स्टैक ट्रेस प्रिंट करना अपवादों को संभालने का लगभग उचित तरीका नहीं है ...)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL - पहले 3 अल्पविराम से अलग किए गए मान प्राप्त करें

  2. पहली बार तीन अद्वितीय मान sql के साथ दिखाई दें का चयन करें

  3. Mysql क्वेरी में <> का क्या अर्थ है?

  4. लिनक्स सर्वर पर स्वचालित रूप से MySQL डेटाबेस का बैकअप लें

  5. मेरे मैक पर अजगर mysqldb गलती:लाइब्रेरी लोड नहीं हुई:@ rpath/libmysqlclient.21.dylib