我的更新密码查询无效。我不知道为什么。没有显示错误报告。
public class CpassDao extends ActionSupport {
private static final long serialVersionUID = 1L;
public static boolean validate(String username,String password,String npass) {
boolean status = false;
ChangePass cp = new ChangePass();
try {
Connection con = DBConnection.getConnection();
PreparedStatement ps = con.prepareStatement("select * from doctable where username=? and password=?");
ps.setString(1, username);
ps.setString(2, password);
ResultSet rs= ps.executeQuery();
status = rs.next();
if(true) {
PreparedStatement ps1 = con.prepareStatement("update details set password=? where username=?");
ps1.setString(1, cp.getNpass());
ps1.setString(2, cp.getUsername());
ps1.executeUpdate();
}
}
catch (Exception ex) {
ex.printStackTrace();
return status;
}
return status;
}
}
答案 0 :(得分:0)
已创建cp但您未能使用用户名或密码进行分配,因此更新将为空用户名。
顺便说一句,你有if(true)
这是不必要的吗?你的意思是使用rs.hasNext()
吗?
答案 1 :(得分:0)
我认为您在更新后忘记了commit命令。 :)
答案 2 :(得分:0)
我找到了答案并解决了问题。现在使用新数据更新数据库。在if语句之后,而不是给予 “ps1.setString(1,cp.getNpass());”我给了“ps1.setString(1,npass());”。就这样。问题解决了。谢谢你的建议朋友。