更新用户密码功能

embedded/2025/1/17 11:17:14/

总说

过程参考黑马程序员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/embedded/154640.html

相关文章

GIS大模型:三维重建与建模

文章目录 数据收集预处理特征提取深度估计点云生成表面重建纹理映射大模型的角色 大模型在三维重建与建模方面&#xff0c;尤其是在处理低空地图数据时&#xff0c;展现了其强大的能力。通过使用深度学习算法&#xff0c;特别是那些基于卷积神经网络&#xff08;CNNs&#xff0…

PHP智慧小区物业管理小程序

&#x1f31f;智慧小区物业管理小程序&#xff1a;重塑社区生活&#xff0c;开启便捷高效新篇章 &#x1f31f; 智慧小区物业管理小程序是一款基于PHPUniApp精心雕琢的智慧小区物业管理小程序&#xff0c;它犹如一股清新的科技之风&#xff0c;吹进了现代智慧小区的每一个角落…

【网络 MAC 学习专栏 -- 如何理解 PHY 的 Link Up】

请阅读【嵌入式开发学习必备专栏 Cache | MMU | AMBA BUS | CoreSight | Trace32 | CoreLink | ARM GCC | CSH】 文章目录 OverviewClause 22/Clause 45Clause 22Clause 45 PHY Link 状态的软件实现 转自&#xff1a; 开心果 Need Car 2022年10月20日 09:50 上海 Overview PHY…

YunSDR通信小课堂-33

第16讲 MIMO-OFDM基带接收端系统搭建 IEEE802.11n协议物理层采用的主要技术是MIMO-OFDM技术,本章首先阐述MIMO-OFDM系统基本原理,在此基础上探讨IEEE802.11n采用的MIMO-OFDM系统结构。MIMO技术是具有极高频谱利用率的技术,在空间复用模式下&#xff0c;理想情况可以达到300Mbp…

使用vcpkg安装c++库时出现git网络连接报错的解决方案

使用vcpkg安装c库时出现git连接报错的解决方案 背景解决方案 背景 在使用vcpkg的命令vcpkg install安装库的时候&#xff0c;出现了如下报错 error :failed to fetch ref HEAD from repository https://github.com/microsoft/vcpkg failed to execute: "C:\Program File…

学术内容写作ChatGPT提示词分享

论文写作 标题/主题句[Title/Topic Sentence] 1.为以下摘要建议5个标题&#xff1a;[摘要段落] Suggest 5 titles for the following abstract: [ABSTRACT PARAGRAPH] 2.为这段落写一个主题句&#xff1a;[段落] Write a topic sentence for this paragraph: [PARAGRAPH] …

Flutter插件制作、本地/远程依赖及缓存机制深入剖析(原创-附源码)

Flutter插件在开发Flutter项目的过程中扮演着重要的角色&#xff0c;我们从 ​​​​​​https://pub.dev 上下载添加到项目中的第三方库都是以包或者插件的形式引入到代码中的&#xff0c;这些第三方工具极大的提高了开发效率。 深入的了解插件的制作、发布、工作原理和缓存机…

在使用 GitLab API 时,如果只能获取少量的 Merge Request(MR)信息,而没有完整的数据

在使用 GitLab API 时&#xff0c;如果只能获取少量的 Merge Request&#xff08;MR&#xff09;信息&#xff0c;而没有完整的数据&#xff0c;通常是因为以下原因之一&#xff1a; 1. 分页限制 GitLab API 默认会分页返回数据&#xff0c;每页的默认数量是 20 条&#xff08…