更新用户信息功能

总说

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

一、功能实现

1.1 Controller层

去到UserController,写一个update方法

代码如下:

@PutMapping("/update")
    public Result update(@RequestBody User user) {
        userService.update(user);
        return Result.success();
    }

service层的update方法还没写,所以会爆红

1.2 Service层

添加代码

//更新用户
void update(User user);

1.3 Impl层

添加代码

@Override
    public void update(User user) {
        user.setUpdateTime(LocalDateTime.now());// 更新时间
        userMapper.update(user);
    }

1.4 Mapper层

添加代码:

@Update("update user set nickname=#{nickname},email=#{email},update_time=#{updateTime} where id=#{id}")
    void update(User user);

1.5 接口测试

启动项目,打开apifox

写于对应路径

选择body json,因为我们要传入的是json格式

内容注意,id要和数据库中的对应

操作成功

这样基本功能算是实现了,下一步进行优化

二、参数校验

刚刚没有对更新时的参数进行校验

现在我们的参数要求如下

步骤如下:

2.1 修改pojo层

先找到实体类User

然后添加注解

修改完后代码如下:

@Data
public class User {
    @NonNull
    private Integer id;//主键ID
    private String username;//用户名

    @JsonIgnore//让springmvc把当前对象转换成json字符串的时候,忽略password,最终的json字符串中就没有password这个属性了
    private String password;//密码

    //昵称不能为空,且为1~10个字符 Pattern中写正则表达式
    @NotEmpty
    @Pattern(regexp = "^\\S{1,10}$")
    private String nickname;//昵称

    @NotEmpty
    @Email
    private String email;//邮箱
    
    private String userPic;//用户头像地址
    private LocalDateTime createTime;//创建时间
    private LocalDateTime updateTime;//更新时间
}

然后我们要去需要参数校验的实体前面添加 @Validated注解

然后启动项目,来到apifox进行测试

首先改一下非法的邮箱,

其他参数不再截图,自己试试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值