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

MySQLSyntaxErrorException निकट है? रेडीस्टेडमेंट निष्पादित करने का प्रयास करते समय

<ब्लॉकक्वॉट>

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 बेसिक ट्यूटोरियल देखें। अधिक विवरण के लिए।



  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 में सर्वर कोलेशन कैसे दिखाएं

  2. गंभीर त्रुटि:अपरिभाषित फ़ंक्शन को कॉल करें session_register ()

  3. संग्रहीत प्रक्रिया जो MYSQL में 7 दिनों से अधिक पुरानी पंक्तियों को स्वचालित रूप से हटा देती है

  4. MySQL और MariaDB में सभी डेटाबेस को सूचीबद्ध करने और दिखाने के लिए SQL कमांड

  5. CentOS 7 पर Netdata का उपयोग करके MySQL/MariaDB डेटाबेस की निगरानी कैसे करें