更新用户密码功能

news/2025/1/16 13:10:01/

总说

过程参考黑马程序员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

检验三个参数是否为空

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

然后实现更新

代码如下:

java">//更新密码@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,代码如下:

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

1.3 Impl层

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

java">@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

添加代码如下:

java">//根据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端口了,我真的服了


http://www.ppmy.cn/news/1563600.html

相关文章

如何在前端给视频进行去除绿幕并替换背景?-----Vue3!!

最近在做这个这项目奇店桶装水小程序V1.3.9安装包骑手端V2.0.1小程序前端 最近&#xff0c;我在进行前端开发时&#xff0c;遇到了一个难题“如何给前端的视频进行去除绿幕并替换背景”。这是一个“数字人项目”所需&#xff0c;我一直在冥思苦想。终于有了一个解决方法…

在vscode中已经安装了插件Live Server,但是在命令面板确找不到

​​​​​ 1、VS Code缓存问题&#xff1a; 有时VS Code的缓存可能导致插件无法正确加载。尝试删除VS Code缓存文件夹&#xff08;如C:\Users\你的用户名\AppData\Roaming\Code&#xff09;中的文件&#xff0c;并重启VS Code。 2、重新安装插件&#xff1a; 尝试卸载Live S…

Pycharm 使用教程

一、基本配置 1. 切换Python解释器 pycharm切换解释器版本 2. pycharm虚拟环境配置 虚拟环境的目的&#xff1a;创建适用于该项目的环境&#xff0c;与系统环境隔离&#xff0c;防止污染系统环境&#xff08;包括需要的库&#xff09;虚拟环境配置存放在项目根目录下的 ven…

计算机网络 (37)TCP的流量控制

前言 计算机网络中的TCP&#xff08;传输控制协议&#xff09;流量控制是一种重要机制&#xff0c;用于确保数据在发送方和接收方之间的传输既高效又稳定。 一、目的 TCP流量控制的主要目的是防止发送方发送数据过快&#xff0c;导致接收方无法及时处理&#xff0c;从而引起数据…

在职研生活学习--20250109~管理经济学

9 上午 7点吃饭 上课 经济是省钱 稀缺资源最优配置 经济学需要数学思维 帕累托最优&#xff0c;改进 市场机制可以实现帕累托最优 实现帕累托最优的方式之一: 计划经济&#xff0c;代表人物: 李富春湖南长沙人。资源高度集中。 市场经济&#xff0c;价格调控/配置资源…

论文解析 | 基于语言模型的自主代理调查

论文 《A Survey on Large Language Model-based Autonomous Agents》 对基于大型语言模型&#xff08;LLM&#xff09;的自主智能体&#xff08;Autonomous Agents&#xff09;进行了全面调查。随着大型语言模型&#xff08;如 GPT 系列、BERT、T5 等&#xff09;的快速发展&a…

python | xpinyin,一个可以将汉字转换为拼音的库

xpinyin 是一个第三方 python 库&#xff0c;可以将汉字&#xff08;中文&#xff09;转换成拼音&#xff0c;仅需几行代码即可。 此外&#xff0c;xpinyin 库还具备以下特点&#xff1a; 一是&#xff0c;xpinyin 支持多种输出格式&#xff0c;包括&#xff1a;不带声调&…

uniapp 发布后原生img正常,image无法显示,img与uniapp image使用区别

问题描述&#xff1a; 需要在本地测试和发布后图片都能正常显示&#xff0c;线上是把项目放在了/web目录下&#xff0c;使用html img src“static/images/guideArrow.png"时都能正常显示&#xff0c;但使用uniapp image则不行&#xff0c;由于image兼容性比较好&#xff0…