साथ मैं एक सर्वलेट में अनुवर्ती कोड है -एसक्यूएल क्वेरी निष्पादित 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);
}
: यह सार्थक में जानकारी शामिल है
कृपया अपवाद संदेश/ट्रेस दिखाएं। कृपया बताएं कि क्या आपका कोड कभी भी उस विशिष्ट डेटाबेस से जुड़ा हुआ है या नहीं। – Javier