Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Pengecualian di utas utama com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:Anda memiliki kesalahan dalam sintaks SQL Anda

Tidak perlu meneruskan variabel pernyataan sql ke executeQuery untuk PreparedStatement . Itulah masalah utama dalam kasus Anda.

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

Saat Anda menyetel ulang sql yang akan dieksekusi, pernyataan tersebut tidak dikenali sebagai pernyataan yang disiapkan tetapi merupakan turunan dari Statement induk yang mencari input yang valid di antara tanda kutip untuk sengatan dll. yang tidak ada. Dan karenanya adalah kesalahan Sintaks.

Ubah :

ResultSet rs = preparedStatement.executeQuery(selectSQL);

Ke :

ResultSet rs = preparedStatement.executeQuery();

Dan itu seharusnya berhasil.

Rujuk :



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. kesalahan gabungan collations

  2. Masukkan data ke dalam beberapa tabel menggunakan satu formulir

  3. Mengambil entri terbaru per pengguna

  4. Kelompokkan menurut harus mengembalikan 0 saat mengelompokkan berdasarkan jam. Bagaimana cara melakukannya?

  5. mysql_insert_id() selalu mengembalikan 0