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);

Докато нулирате sql, който трябва да бъде изпълнен, изразът не се разпознава като подготвен израз, а екземпляр на родителския 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. Как да намерите рождения ден на ПРИЯТЕЛИ, които празнуват днес, използвайки PHP и MYSQL

  3. Python:неподдържан символ за формат ''' (0x27) при индекс 350

  4. php do while няма да работи със next->rowset

  5. как да стартирам скрипта на python от mysql заявката?