2012-08-05 13 views
6

साथ मैं एक सर्वलेट में अनुवर्ती कोड है -एसक्यूएल क्वेरी निष्पादित PreparedStatement

  String loginID = request.getParameter("loginId").toString(); 
      String loginPassword = request.getParameter("loginPassword").toString(); 
      String strSQLcount = "SELECT COUNT(*) as 'Number Of Match' " 
       + "FROM persons " + "WHERE (password =? AND id =?);"; 
      PreparedStatement prepareSQL = connection 
        .prepareStatement(strSQLcount); 
      prepareSQL.setString(1, loginPassword); 
      prepareSQL.setString(2, loginID); 
      ResultSet numOfMatchResult = prepareSQL.executeQuery(); 
      // now we know number of matchs ... 
      int numOfMatch = numOfMatchResult.getInt(1); 

जब चल रहा है पर और लाइन int numOfMatch = numOfMatchResult.getInt(1); यह अपवाद फेंकता तक पहुँचने - java.sql.SQLException। मैंने इसे चेक किया और देखा कि executeQuery() किसी को भी पुनर्प्राप्त नहीं किया गया। यह तब होता है जब मेरे पास persons तालिका है, जो MySQL के साथ बनाई गई है, 2 फ़ील्ड - id (text) मूल्य "300" और password (text) मूल्य "500" के साथ। और निश्चित रूप से मैं इसे जांचता हूं जब loginID और loginPassword समान 2 मानों के साथ। मैंने डीबी के कनेक्शन के बारे में अन्य सभी चीजों की जांच की और यह ठीक था .. इसलिए मुझे लगता है कि समस्या strSQLcount में SQL वाक्यविन्यास में है। यदि यह समस्या को हल करने, अपवाद के पूरे स्टैक ट्रेस पेस्ट पर्याप्त नहीं है

ResultSet numOfMatchResult = prepareSQL.executeQuery(); 
int numOfMatch = 0; 
if (rs.next() {  
    numOfMatch = numOfMatchResult.getInt(1); 
} 

: यह सार्थक में जानकारी शामिल है

+0

कृपया अपवाद संदेश/ट्रेस दिखाएं। कृपया बताएं कि क्या आपका कोड कभी भी उस विशिष्ट डेटाबेस से जुड़ा हुआ है या नहीं। – Javier

उत्तर

6

आप परिणाम सेट पर next() कॉल करने के लिए भूल गया था।

+0

धन्यवाद यह पर्याप्त है :) इसलिए जब तक मैं परिणाम के लिए "rs.next()" नहीं करता, मैं इसका उपयोग नहीं कर सकता? – URL87

+0

प्रत्येक बार जब आप परिणाम सेट से जानकारी पुनर्प्राप्त करना चाहते हैं, तो आपको कर्सर को डेटा की एक पंक्ति में इंगित करने की आवश्यकता है। 'rs.next() 'इसे अगली पंक्ति पर रखता है (पहली बार इसे पहली बार कहा जाता है)। –

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