我这段代码有什么问题吗,运行时输入的密码跟数据库中的密码一直,为啥还提示密码不对?还望朋友们解惑解惑

try{
if(DB.query(sql)){
DB.rs.next();
String ps1=pas1.getText();
System.out.println("第一个"+ps1);
String password=DB.rs.getString("密码");
System.out.println("旧密码"+password);
if(ps1.equals(password)){
if(pas2.getText().equals(pas3.getText())){
System.out.println("第二个"+pas2);
System.out.println("第三个"+pas3);
String supdate="update Users set 密码='"+ pas3.getText()+"' where 用户名='"+ name +"'";
DB.executeSQL(supdate);
new JOptionPane().showMessageDialog(null,"密码更改成功!");
}
else{
new JOptionPane().showMessageDialog(null,"两次密码不同!");
}
System.out.println("NO");
}
else{
System.out.println("对");
new JOptionPane().showMessageDialog(null,"旧密码不正确!");
}
}
}
运行结果:
图片说明

String ps1=pas1.getText();
->String ps1=pas1.getText().trim();

pas3.getText()
->pas3.getText().trim()

不对这个试过,不行的

String ps1=pas1.getText(); ->String ps1=pas1.getText().trim(); pas3.getText() ->pas3.getText().trim()

你这逻辑不对啊,一个是“错”这个字在你的代码里根本没有,怎么输出来的?

另外你这个逻辑去掉别的内容就变成下面这样了

if(ps1.equals(password)){
    if(pas2.getText().equals(pas3.getText())){
        new JOptionPane().showMessageDialog(null,"密码更改成功!");
    }
    else{
        new JOptionPane().showMessageDialog(null,"两次密码不同!");
    }
    System.out.println("NO");
}
else{
    System.out.println("对");
    new JOptionPane().showMessageDialog(null,"旧密码不正确!");
}

现在的逻辑是if(ps1.equals(password))条件满足就会System.out.println("NO");