Java 在我的JDBC项目中,总是if条件返回false
这是我的服务 我尝试了各种方法,但在比较Java 在我的JDBC项目中,总是if条件返回false,java,jdbc,Java,Jdbc,这是我的服务 我尝试了各种方法,但在比较if条件中的字符串时,它总是返回false,if(pwd==dbpw)也是返回false,每次都是这样的代码 public boolean authenticate(String email,String pwd){ boolean result=false; String dbpw=""; DBConnect myDB=new DBConnect(); Connection co
if
条件中的字符串时,它总是返回false
,if(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;
}
}
我尝试使用更多的输入,但输出总是错误的,但数据库检索到正确的值,当在if
条件中进行比较时,就会出现这个问题。
请帮助我。您可以检查您的虚拟文件是否包含空格:
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;
}
您可以检查您的虚拟表格是否包含空格:
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;
}
为了确定这是一个空格还是大小写问题,可以尝试:if(pwd.trim().equalsIgnoreCase(dbpw.trim()){当您在比较之前打印它们时,您看到了
pwd
和dbpw
的哪些值?或者在代码中插入一行日志以查看变量的内容,例如log.debug(“pwd=[{}],dbpw=[{}]”,pwd,dbpw);
(或System.out.println(“pwd=[“+pwd+”],dbpw=[“+dbpw+”]”);
如果你没有日志实例)。顺便说一句。在数据库中存储明文密码肯定是个坏主意。密码必须用哈希法进行哈希处理,例如使用。当'trim()时,它会正确运行'字符串对象,非常感谢您必须确定这是一个空格还是大小写问题,请尝试:if(pwd.trim().equalsIgnoreCase(dbpw.trim())){code>pwd和dbpw
在比较之前打印出来时,您看到了哪些值?或者在代码中插入一行日志以查看变量的内容,例如log.debug(“pwd=[{}],dbpw=[{}]”,pwd,dbpw”);
(或者System.out.println(“pwd=[“+pwd+”,dbpw=[+dbpw+”)
如果您没有日志实例)。顺便说一句,在数据库中存储明文密码绝对不是一个好主意。密码必须经过哈希处理,例如使用。当“trim()”字符串对象时,它会正确运行,非常感谢