com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:आपको अपने SQL सिंटैक्स में कोई त्रुटि है; सही सिंटैक्स के लिए आपके MySQL सर्वर संस्करण से संबंधित मैनुअल की जाँच करें 'के पास' का उपयोग करने के लिए? या सदस्यनाम =?' पंक्ति 1
. पर
MySQL ?
एसक्यूएल क्वेरी में। यह वास्तव में अमान्य SQL सिंटैक्स है। तो किसी तरह इसे PreparedStatement
. द्वारा प्रतिस्थापित नहीं किया गया है . और क्या लगता है?
PreparedStatement s = conn.prepareStatement(query);
s.setInt(1, intValue);
s.setString(2, strValue);
rs = s.executeQuery(query); // Fail!
आप मूल क्वेरी के साथ तैयार क्वेरी को ओवरराइड कर रहे हैं! आपको तर्कहीन PreparedStatement#executeQuery()
Statement#executeQuery(String)
।
PreparedStatement s = conn.prepareStatement(query);
s.setInt(1, intValue);
s.setString(2, strValue);
rs = s.executeQuery(); // OK!
समस्या से असंबंधित, आपका कोड संसाधनों को लीक कर रहा है। कई घंटों के बाद डीबी उनमें से बाहर निकल जाएगा और आपका आवेदन दुर्घटनाग्रस्त हो जाएगा। इसे ठीक करने के लिए, आपको Connection
. को बंद करने के JDBC मुहावरे का पालन करना होगा , Statement
और ResultSet
finally
. में try
. का ब्लॉक ब्लॉक जहां उन्हें अधिग्रहित किया गया है। JDBC बेसिक ट्यूटोरियल
देखें। अधिक विवरण के लिए।