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. SQL-任意のブレークを使用して、指定された開始日から終了日を計算します

    2. クエリからSTARTWITHを使用してシーケンスを作成する

    3. iPadのデータベースをリモートデータベースと同期する

    4. 300GBのPostgisテーブルのインデックス作成が遅い