栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【Demo】SpringBoot集合Mybatis修改账户密码逻辑

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Demo】SpringBoot集合Mybatis修改账户密码逻辑

目录

1.需求

2.需求分析

3.demo搭建

数据库映射实体类

Controller

Service

Dao

4.结果验证


提醒:该Demo仅仅完成密码校验修改部分

1.需求

我需要根据 username 去修改 password,前端需要传入用户名,旧密码,新密码三个参数

需求1:需要验证用户是否存在

需求2:新密码不能与老密码相同

需求3:修改密码前,需要验证旧密码

需求4:不能输入空值  


2.需求分析

需要验证用户是否存在,需要一个根据username查询user的查询

查询不存在,返回不存在用户;查询存在,得到用户当前密码

前端传入数据时,验证传入的旧密码是否与当前密码相同,验证传入的新密码是否与当前密码相同


3.demo搭建

数据库映射实体类
@Data
public class User {
    private Integer id;
    private String username;
    private String password;
}

Controller

Controller主要做从HTTP请求中获取信息,提取参数,并将其分发给不同的处理服务(service层),并向前端返回service层处理后的数据(JSON数据ModelAndView对象)

修改密码的controller

@RestController
public class UpdatePasswordController {

    @Autowired
    private UpdatePasswordService updatePasswordService;

    @RequestMapping("update")
    public void updatePassword(@RequestParam(value = "username") String username,
                                  @RequestParam(value = "password") String password,
                                  @RequestParam(value = "newPsw") String newPsw){
        updatePasswordService.updatePassword(username,password,newPsw);
    }
}

根据username查询user的controller

@RestController
public class GetUserByUsernameController {
    @Autowired
    private GetUserByUsernameService getUserByUsernameService;

    @RequestMapping("seach")
    public @ResponseBody User getUserByUsername(String username){
        User user = getUserByUsernameService.getUserByUsername(username);
        return user;
    }
}

Service

Service主要做逻辑处理,本Demo具体逻辑在此部分进行

修改密码的service

//接口层
@Service
public interface UpdatePasswordService {
    String updatePassword(String username,String password,String newPsw);
}


//接口实现层
@Service
public class UpdatePasswordServiceImp implements UpdatePasswordService{

    @Autowired
    private GetUserByUsernameMapper getUserByUsernameMapper;
    @Autowired
    private UpdatePasswordMapper updatePasswordMapper;


    @Override
    public String updatePassword(String username, String password, String newPsw) {
        //根据username获取user
        User user = getUserByUsernameMapper.getUserByUsername(username);

        if (user != null){
            if (StringUtils.isEmpty(username)||StringUtils.isEmpty(password)||StringUtils.isEmpty(newPsw)){
                System.out.println("输入不能为空");
                return "输入不能为空";
            }else if (!user.getPassword().equals(password)){
                System.out.println("原密码错误");
                return "原来密码错误";
            }
            else if (user.getPassword().equals(newPsw)){  
                System.out.println("新密码不能与旧密码相同!");
                return "新密码不能与旧密码相同!";
            }else if (user.getPassword().equals(password)){
                updatePasswordMapper.updatePasswordByUsername(username,newPsw);
                System.out.println("密码修改成功");
                return "密码修改成功";
            }else
                System.out.println("用户密码未修改");
                return "用户密码未修改";
        }else{
            System.out.println("5");
            return "用户不能为空";
        }

    }
}


根据username查询user的service

@Service
public interface GetUserByUsernameService {
    User getUserByUsername(String username);
}

@Service
public class GetUserByUsernameServiceImp implements GetUserByUsernameService {

    @Autowired
    private GetUserByUsernameMapper getUserByUsernameMapper;
    @Override
    public User getUserByUsername(String username) {
        User user = getUserByUsernameMapper.getUserByUsername(username);
        return user;
    }
}

Dao

Dao负责和数据库进行操作,本demo因为sql语句简单使用注解,复杂sql建议写xml

修改密码的Dao

@Repository
public interface UpdatePasswordMapper {
    @Update("update user set password = #{password} where username = #{username}")
    Integer updatePasswordByUsername(@Param("username")String username,@Param("password") String password);
}

根据username查询user的Dao

@Repository
public interface GetUserByUsernameMapper {
    @Select("select * from user where username = #{username}")
    User getUserByUsername (@Param("username") String username);
}

4.结果验证

原来的密码为1141

密码错误

  新密码不能与老密码相同

修改密码成功

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1031780.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号