Не е необходимо да предавате променлива на 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();
И трябва да работи.
Направете справка :