在我的JDBC项目中,总是条件返回false

时间:2015-07-31 08:14:08

标签: java jdbc

这是我的服务

我尝试过多种方式,但在比较false条件中的字符串时,它总是返回ifif(pwd==dbpw)也会返回false,每次都像这段代码一样。

    public boolean authenticate(String email,String pwd){

        boolean result=false;
        String dbpw="";
        DBConnect myDB=new DBConnect();

        Connection con=myDB.getConnection();

        try {
            Statement mySt=con.createStatement();
            //ResultSet myRes=mySt.executeQuery("select pwd from admin where email=\'"+email+"\'");
            ResultSet myRes=mySt.executeQuery("select pwd from admin where email=\'sankasumadura@gmail.com\'");


            while(myRes.next()){
            dbpw=myRes.getString("pwd");
            }



            if(pwd.equals(dbpw)){
                result=true;
            }else{
                result=false;
            }



        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
                }
        finally{


                return result;
                }





    }

我尝试使用更多输入,但总是输出为false,但数据库检索正确的值,并且在if条件内进行比较时会出现此问题。 请帮帮我。

1 个答案:

答案 0 :(得分:0)

您可以检查您的viraible是否包含空格:

pwd=request.getParameter("pwd").toString().trim();

返回之前,您可以将值打印到控制台:

System.out.println("pwd:" + pwd + ",dbpw:" + dbpw + ",isequal:" + pwd.equals(dbpw));
if (pwd.equals(dbpw)) {
    result = true;
} else {
    result = false;
}