Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Ngoại lệ trong chuỗi chính com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:Bạn có lỗi trong cú pháp SQL của mình

Không cần thiết phải chuyển biến câu lệnh sql cho executeQuery cho PreparedStatement . Đó là vấn đề chính trong trường hợp của bạn.

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

Khi bạn đang đặt lại sql sẽ được thực thi, câu lệnh không được coi là câu lệnh đã chuẩn bị sẵn mà là một phiên bản của câu lệnh Statement mà đang tìm kiếm các đầu vào hợp lệ ở giữa các dấu ngoặc kép cho các vết đốt, v.v. không hiện diện. Và do đó là lỗi Cú pháp.

Thay đổi :

ResultSet rs = preparedStatement.executeQuery(selectSQL);

Tới :

ResultSet rs = preparedStatement.executeQuery();

Và nó sẽ hoạt động.

Tham khảo :



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để tạo các thủ tục tạm thời trong MySQL?

  2. Truy vấn LEFT OUTER JOIN không trả về các hàng mong đợi

  3. SQL:Lỗi cú pháp với giao nhau?

  4. Cách sử dụng các câu lệnh chuẩn bị sẵn trong Zend Framework

  5. Làm thế nào để CHỌN hai cột, trong đó một cột phải là DISTINCT?