sql >> Database teknologi >  >> RDS >> Mysql

Undtagelse i trådens hoved com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:Du har en fejl i din SQL-syntaks

Det er ikke nødvendigt at sende sql-sætningsvariabelen til executeQuery for PreparedStatement . Det er hovedproblemet i dit tilfælde.

PreparedStatement preparedStatement = connection.prepareStatement(selectSQL);
preparedStatement.setString(1, lexiconType);
preparedStatement.setString(2, lemma);
// error is in the following statement
ResultSet rs = preparedStatement.executeQuery(selectSQL);

Mens du nulstiller sql'en, der skal udføres, genkendes sætningen ikke som forberedt sætning, men en forekomst af overordnet Statement som leder efter gyldige inputs imellem citater for stik osv. som ikke er til stede. Og derfor er syntaksfejlen.

Skift :

ResultSet rs = preparedStatement.executeQuery(selectSQL);

Til :

ResultSet rs = preparedStatement.executeQuery();

Og det burde virke.

Se :



  1. Gruppering af rækker i betragtning af forskellen mellem rækkerne

  2. tilføj kolonne til mysql-tabellen, hvis den ikke eksisterer

  3. Funktion som USE til at pege på en SQL-database på en anden server?

  4. Fuld liste over lokaliteter i MySQL