尽量用String.equals()方法比较,不然可能会出现预期之外的结果。
public String forgetPwd2(String username, String question, String answer) {
String result = null;
try {
session = HibernateInitialize.getSession();
Criteria criteria = session.createCriteria(User.class);
criteria.add(Restrictions.like("username", username));
List<User> list = (List<User>) criteria.list();
User user = new User();
for (User user1 : list) {
user.setAnswer(user1.getAnswer());
user.setPwd(user1.getPwd());
}
String AnswerChecker=user.getAnswer();
//如果写成if(AnswerChecker==answer)会判断成false,emmmm~~(阿里Java技术手册要好好看看鸭)
if (AnswerChecker.equals(answer)) {
result = user.getPwd();
} else {
result = "您输入的密码提示问题答案错误!";
}
} catch (HibernateException e) {
e.printStackTrace();
result = "您输入的密码提示问题答案错误!";
}finally {
HibernateInitialize.closeSession();
}
return result;
}