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

थ्रेड मुख्य com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException में अपवाद:आपको अपने SQL सिंटैक्स में त्रुटि है

sql स्टेटमेंट वैरिएबल को executeQuery में पास करने की कोई आवश्यकता नहीं है PreparedStatement . के लिए . आपके मामले में यही मुख्य मुद्दा है।

PreparedStatement preparedStatement = connection.prepareStatement(selectSQL);
preparedStatement.setString(1, lexiconType);
preparedStatement.setString(2, lemma);
// error is in the following statement
ResultSet rs = preparedStatement.executeQuery(selectSQL);

जैसा कि आप रीसेट कर रहे हैं निष्पादित किया जाने वाला एसक्यूएल, बयान तैयार बयान के रूप में मान्यता प्राप्त नहीं है बल्कि माता-पिता का एक उदाहरण है Statement जो स्टिंग आदि के लिए उद्धरणों के बीच वैध इनपुट की तलाश में है जो मौजूद नहीं हैं। और इसलिए सिंटैक्स त्रुटि है।

बदलें :

ResultSet rs = preparedStatement.executeQuery(selectSQL);

प्रति :

ResultSet rs = preparedStatement.executeQuery();

और यह काम करना चाहिए।

संदर्भ लें :



  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. SQL सर्वर से पैरामीटर में गुजरने वाली ADO .NET स्रोत क्वेरी को क्वेरी करने के लिए SSIS का उपयोग करना

  3. Python3 + MySql:MySQLdb मॉड्यूल लोड करने में त्रुटि:'MySQLdb' नाम का कोई मॉड्यूल नहीं

  4. SQLAlchemy त्रुटि MySQL सर्वर चला गया है

  5. MySQL से चिपके रहने के 10 कारण