Bạn cần sử dụng:
preparedStatement.executeQuery();
thay vì
preparedStatement.executeQuery(login);
khi bạn chuyển một chuỗi vào executeQuery()
đó truy vấn được thực thi theo nghĩa đen và do đó ?
là gửi đến cơ sở dữ liệu, sau đó tạo ra lỗi. Bằng cách chuyển chuỗi truy vấn, bạn không thực thi câu lệnh đã chuẩn bị "được lưu trong bộ nhớ đệm" mà bạn đã chuyển các giá trị cho nó.