我在 servlet 中有以下代码 -
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);
当运行并到达该行时int numOfMatch = numOfMatchResult.getInt(1);
,它会引发异常 - java.sql.SQLException
。我查了一下,发现它是因为executeQuery()
没有检索到。尽管我在persons
使用 MySQL 创建的表中有两个字段 -
id (text)
值“300”和password (text)
值“500”,但它发生了。loginID
当然,我会检查它何时loginPassword
使用相同的 2 个值。我检查了有关与数据库连接的所有其他事情,一切正常..所以我认为问题出在 .sql 语法中strSQLcount
。