Det finns ingen anledning att skicka SQL-satsvariabeln till executeQuery
för PreparedStatement
. Det är huvudfrågan i ditt fall.
PreparedStatement preparedStatement = connection.prepareStatement(selectSQL);
preparedStatement.setString(1, lexiconType);
preparedStatement.setString(2, lemma);
// error is in the following statement
ResultSet rs = preparedStatement.executeQuery(selectSQL);
När du återställer sql som ska köras, satsen känns inte igen som en förberedd sats utan en instans av överordnad Statement
som letar efter giltiga ingångar mellan citat för sting etc. som inte finns. Och därav är syntaxfelet.
Ändra :
ResultSet rs = preparedStatement.executeQuery(selectSQL);
Till :
ResultSet rs = preparedStatement.executeQuery();
Och det borde fungera.
Se :