有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java JSP登录注销简单web应用程序,使用bean在数据库中存在数据时返回false

我正在学习J2EE,尝试使用JSAP和Beans创建一个简单的LoginLout应用程序

 db data is:
 name     email             pass
 rita     rita@123          rita@567
 scdjkc   abc@gmail.com     12376
 jsgdjj   abcdef@gmail.com  123476
 sgApurva abcdef@gmail.com  123476
 sgApurva abc123@gmail.com  123e3476

当我付出的时候”rita@123“电子邮件和”rita@567“在pass中,它说:不正确的凭证-这意味着返回值为false。我不理解为什么当数据已经存在于数据库中时,它返回false。当我努力编码这些值时,它正确地显示了正确的消息

我在java应用程序中写了同样的东西,然后返回true。 请帮我解决这个问题
以下是我的数据库连接和获取数据代码:

//String query="select * from emp2 where email='rita@123' and pass='rita@567'";
String query= "select * from emp2 where email=? and pass=?";
try{  
    Connection con = ConnectionProvider.getCon();  

    if(con==null){
        return "value";
    }

    PreparedStatement ps=con.prepareStatement(query);  
    ps.setString(1,bean.getEmail());  
    ps.setString(2,bean.getPass());  
    ResultSet rs = ps.executeQuery();  

    if(rs.next()){
        return "true";
    }
    else{
        return "false";
    } 

}catch(Exception e){
    e.printStackTrace();
}  

return "error";  

共 (2) 个答案

  1. # 1 楼答案

    可以使用trim()方法消除字符串上可能的空格:

    bean.getEmail().trim();
    
  2. # 2 楼答案

    有没有可能你有空位`?如果硬编码值有效,这意味着传入的字符串不同。尝试调试,看看会发生什么。您还可以将您期望的内容作为输入进行断言,并记录其真实内容