如何在JSP中捕获“没有选择行”?

时间:2014-08-18 11:14:14

标签: java oracle jsp

我的JSP页面包含以下用于登录身份验证的代码:

<%
 System.out.println("Entered");
 String username=request.getParameter("username");
 String password=request.getParameter("password");
 Connection con=getConnection.getConnectionBuilder();

 PreparedStatement pstmt=con.prepareStatement("Select password from users where username=? and password=?");
 pstmt.setString(1, "username");
 pstmt.setString(2, "password");
 boolean ifTrue=pstmt.execute();
 System.out.println(""+ifTrue);
 if (ifTrue==false)
 {
    out.print("Invalid userid and password combination");
 }
%>

现在问题是“当我输入无效的用户名和密码组合时,查询从Oracle返回no rows selected并且我无法理解如何捕获此消息。我尝试使用布尔值,但正如预期的那样正在返回true。我找不到任何返回字符串的pstmt方法,而executeUpdate返回整数。

1 个答案:

答案 0 :(得分:0)

请尝试以下代码。

PreparedStatement pstmt = con.prepareStatement("Select password from users where username=? and password=?");
pstmt.setString(1, "username");
pstmt.setString(2, "password");
ResultSet resultSet = pstmt.executeQuery();

if(!resultSet.next()) 
    out.print("no rows selected");
}