Není nutné předávat proměnnou příkazu sql do executeQuery
pro PreparedStatement
. To je hlavní problém ve vašem případě.
PreparedStatement preparedStatement = connection.prepareStatement(selectSQL);
preparedStatement.setString(1, lexiconType);
preparedStatement.setString(2, lemma);
// error is in the following statement
ResultSet rs = preparedStatement.executeQuery(selectSQL);
Při resetování SQL, který se má provést, příkaz není rozpoznán jako připravený příkaz, ale jako instance nadřazeného Statement
který hledá platné vstupy mezi uvozovkami pro bodnutí atd., které nejsou přítomny. A proto je syntaktická chyba.
Změnit :
ResultSet rs = preparedStatement.executeQuery(selectSQL);
Komu :
ResultSet rs = preparedStatement.executeQuery();
A mělo by to fungovat.
Odkaz :