欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 资讯 > 更新用户密码功能

更新用户密码功能

2025/3/28 8:27:33 来源:https://blog.csdn.net/m0_62652820/article/details/145159056  浏览:    关键词:更新用户密码功能

总说

过程参考黑马程序员SpringBoot3+Vue3全套视频教程,springboot+vue企业级全栈开发从基础、实战到面试一套通关_哔哩哔哩_bilibili

又是写了一半开始懒散不想写了,9天没写了。

博客仅记录过程,可能解释不详细,因为我也有点一知半解。只能说一边学习一边补充

目录

总说

一、功能实现

1.1 Controller层

1.2 Service层

1.3 Impl层

1.4 Mapper层

1.5 测试接口

二、优化

2.1

2.2


一、功能实现

本次实现更新密码功能

流程比较常规

需要输入旧密码oldPwd、新密码newPwd、重复新密码rePwd

1.1 Controller层

来到UserController

检验三个参数是否为空

检验新密码和确认密码是否一致

然后实现更新

代码如下:

//更新密码@PatchMapping("/updatePwd")public Result updatePwd(@RequestBody Map<String, String> params){//1、校验参数String oldPwd = params.get("oldPwd");String newPwd = params.get("newPwd");String rePwd = params.get("rePwd");if (!StringUtils.hasLength(oldPwd) || !StringUtils.hasLength(newPwd) || !StringUtils.hasLength(rePwd)) {return Result.error("缺少必要参数");}//2、检验密码是否正确Map<String, Object> map = ThreadLocalUtil.get();String username = (String) map.get("username");// 在线程中获取用户名usernameUser user = userService.findByUserName(username); //根据用户名查询用户if(!user.getPassword().equals(Md5Util.getMD5String(oldPwd))) {return Result.error("原密码不正确");}//2次填写密码是否一致if(!rePwd.equals(newPwd)) {return Result.error("两次密码不一致");}//3、调用service完成密码更新userService.updatePwd(newPwd);return Result.success();}

1.2 Service层

来到UserService,代码如下:

//更新用户密码
void updatePwd(String newPwd);

1.3 Impl层

来到UserServiceImpl中,添加代码如下:

@Overridepublic void updatePwd(String newPwd) {//从ThreadLocal中获取用户idMap<String, Object> map = ThreadLocalUtil.get();Integer id = (Integer) map.get("id");userMapper.updatePwd(Md5Util.getMD5String(newPwd));// 传入加密后的新密码}

1.4 Mapper层

来到UserMapper

添加代码如下:

//根据id更新更新用户密码
@Update("update user set password=#{md5String},update_time=now() where id=#{id}")
void updatePwd(String md5String, Integer id);

1.5 测试接口

写一个新的接口如下:

old_pwd注意看你的数据库中的原密码

成功修改

这里一直给我说9090端口被占用,我这里在aqqlication.yml把端口号改成9091了

之后修好后会改回9090的

破案了,挂的梯子占用9090端口了,我真的服了

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词