if (dao.getPassword(acc).equals(pass)) {
时间: 2023-12-18 18:03:04 浏览: 23
这段代码是一个简单的登录验证逻辑,其中 dao 是数据访问对象,getPassword(acc) 是获取指定账户的密码,equals(pass) 则是将用户输入的密码与数据库中存储的密码进行比较。如果两者相等,则说明用户输入的密码是正确的,可以允许用户登录系统。否则,登录失败,需要提示用户重新输入密码或找回密码。
相关问题
public String ChangePassword(UserInfo userInfo){ if(userInfo.getPassword().equals(userInfo.getNewPassword())){ throw new RuntimeException("新密码不能与旧密码相同"); } User user = selectUserByPhone(User.builder().phoneNumber(userInfo.getUsername()).build()); if (user == null || !user.getPassword().equals(userInfo.getPassword())) { throw new RuntimeException("账号或密码不正确"); } if(validatePassword(userInfo.getPassword())){ user.setPassword(userInfo.getNewPassword()); userInfoMapper.updateByPrimaryKeySelective(user); } else { throw new RuntimeException("密码格式不正确"); } return "修改密码成功"; }简化代码
以下是简化后的代码:
```
public String ChangePassword(UserInfo userInfo) {
User user = selectUserByPhone(User.builder().phoneNumber(userInfo.getUsername()).build());
if (user == null || !user.getPassword().equals(userInfo.getPassword())) {
throw new RuntimeException("账号或密码不正确");
}
if (userInfo.getPassword().equals(userInfo.getNewPassword())) {
throw new RuntimeException("新密码不能与旧密码相同");
}
if (validatePassword(userInfo.getPassword())) {
user.setPassword(userInfo.getNewPassword());
userInfoMapper.updateByPrimaryKeySelective(user);
return "修改密码成功";
} else {
throw new RuntimeException("密码格式不正确");
}
}
```
user=queryRunner.query(sql1,new BeanHandler<>(User.class),username); // for (User user1 : list) { // System.out.println(user1.getName() + " :"+user1.getPassword()); // } if (user.getName().equals(username)&&user.getPassword().equals(password)){ return 1;不能这样用码
这段代码中的注释有误,代码中使用了一个 `user` 对象来存储从数据库中查询到的用户信息,但是在判断用户名和密码是否匹配时,使用的是 `user.getName().equals(username) && user.getPassword().equals(password)`,这是不正确的。应该使用查询到的用户对象中的用户名和密码进行匹配,代码应该改成:
```
if (user != null && user.getName().equals(username) && user.getPassword().equals(password)) {
return 1;
}
```
其中,`user != null` 用于保证查询到了用户信息,避免空指针异常。