Tôi có đoạn code sau trong một servlet -truy vấn sql thực hiện với PreparedStatement
String loginID = request.getParameter("loginId").toString();
String loginPassword = request.getParameter("loginPassword").toString();
String strSQLcount = "SELECT COUNT(*) as 'Number Of Match' "
+ "FROM persons " + "WHERE (password =? AND id =?);";
PreparedStatement prepareSQL = connection
.prepareStatement(strSQLcount);
prepareSQL.setString(1, loginPassword);
prepareSQL.setString(2, loginID);
ResultSet numOfMatchResult = prepareSQL.executeQuery();
// now we know number of matchs ...
int numOfMatch = numOfMatchResult.getInt(1);
Khi ở trên chạy và đạt đến dòng int numOfMatch = numOfMatchResult.getInt(1);
nó ném ngoại lệ - java.sql.SQLException
. Tôi đã kiểm tra và thấy rằng nó bởi vì executeQuery()
không lấy được ai. nó xảy ra mặc dù tôi có trong bảng persons
, được tạo bằng MySQL, 2 trường - id (text)
với giá trị "300" và password (text)
có giá trị "500". và tất nhiên tôi kiểm tra nó khi loginID
và loginPassword
có cùng 2 giá trị. Tôi đã kiểm tra tất cả những thứ khác về kết nối với DB và nó đã được OK .. vì vậy tôi nghĩ rằng vấn đề là trong cú pháp SQL trong strSQLcount
.
Vui lòng hiển thị thông báo/theo dõi ngoại lệ. Vui lòng cho biết mã của bạn đã từng kết nối với cơ sở dữ liệu cụ thể chưa. – Javier