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 :