sql >> Databáze >  >> RDS >> Mysql

Výjimka v hlavním vlákně com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:Máte chybu v syntaxi SQL

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 :



  1. Jak mohu pomocí MySQL vybrat hodnocení výsledku dotazu pro jeden konkrétní řádek?

  2. Získejte top-k každé skupiny v MySQL

  3. Nejlepší způsob, jak skartovat data XML do databázových sloupců SQL Server

  4. Počítání záznamů patřících do kategorie v MySQL