当前位置: 首页 > news >正文

SpringBoot企业级开发之【用户模块-更新用户基本信息】

接口文档:

开发前我们先看一下接口文档:

这是实现的预想结果:

实现思路:

设计一下我们的实现思路

拿起家伙实操:
 

1.controller

定义一个方法去修改用户:

注意!是【put请求】

//更改用户信息
    @PutMapping("/update")
    public Result update(@RequestBody User user) {
        //更新用户信息
       userService.update(user);
        return Result.success();
    }

2.service接口

3.service实现类

记得传入时间

  //更改用户信息
    @Override
    public void update(User user) {
        user.setUpdate_time(LocalDateTime.now());
        //调用Mapper更新用户信息
        userMapper.update(user);
    }

4.Mapper

//更新用户信息
    @Insert("UPDATE user SET nickname = #{nickname}, email = #{email},  update_time = now() WHERE id = #{id}")
    void update(User user);

测试案例:
 

带入json格式的代码

{
    "id":1,
    "username":"wwwwwww",
    "nickname":"wba",
    "email":"wacc"
}

成功结果:

参数校验:

之前我们是简单开发了更新用户信息的操作,但是接口文档的话对一些参数会有要求,如:

我们在之前有学过参数校验这一块,但是那些都是暴露出参数的,我们这次的更改是传入了实体类,如下:

解决:

我们遇到以上情况,可以在实体类下对应的字段去加入相关的注解:

Patten 自定义约束条件

步骤1:

在实体类加入相关的约束注释:

package org.huangyingyuan.pojo;

import com.fasterxml.jackson.annotation.JsonIgnore;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import lombok.Data;

import java.time.LocalDateTime;

@Data
public class User {
    @NotNull
    private Integer id;
    private String title;
    @NotEmpty
    @Pattern(regexp = "^\\S{1,10}$")
    private String nickname;
    private  String content;
    @JsonIgnore
    private String password;
    private String username;
    @NotEmpty
    @Email
    private String email;
    private LocalDateTime create_time;
    private LocalDateTime update_time;
}

步骤2:

在controller带入的实体类参数前加入【@Validated注解】,使其在实体类字段中添加的注解才能生效

    //更改用户信息
    @PutMapping("/update")
    public Result update(@RequestBody @Validated User user) {
        //更新用户信息
       userService.update(user);
        return Result.success();
    }

总结全部步骤:

以上是【更新用户详细信息的操作】

相关文章:

  • OSPF不规则区域
  • ubuntu20.04在mid360部署direct_lidar_odometry(DLO)
  • HP DeskJet 1212 Printer UOS/Ubuntu下驱动安装
  • Kaggle-Housing Prices-(回归+Ridge,Lasso,Xgboost模型融合)
  • DeepSeek+新媒体运营落地实操方法
  • 洛谷普及B3694 数列离散化
  • 深度学习实战:从零构建图像分类API(Flask/FastAPI版)
  • Zabbix告警处理:Zabbix server: Utilization of poller processes over 75%
  • Datawhale 入驻 GitCode:以开源力量推动 AI 教育公平与创新
  • 打分函数分类
  • FLINK框架:流式处理框架Flink简介
  • 【已解决】vscode升级后连接远程异常:“远程主机可能不符合XXX的先决条件”解决方法
  • 深入理解 GLOG_minloglevel 与 GLOG_v:原理与使用示例
  • FISCO BCOS技术架构解析:从多群组设计到性能优化实践
  • 致远OA —— 表单数据获取(前端)
  • 【中检在线-注册安全分析报告】
  • 深度学习的下一个突破:从图像识别到情境理解
  • PyTorch 深度学习实战(35):图生成模型与分子设计
  • 贪心算法 day08(加油站+单调递增的数字+坏了的计算机)
  • 电视剧角色扮演AI Agent中的大模型操作流程
  • 全网/重庆seo结算
  • 学做网站论坛vip账户/seo技术是干什么的
  • 网站建设制作设计seo优化南宁/网站统计分析工具的主要功能
  • 许昌做网站优化/国际新闻最新消息今天军事新闻
  • 深圳响应式建站/热点时事新闻
  • 做网站联系我们模板免费/关键词的优化方案