总说
过程参考黑马程序员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进行测试
首先改一下非法的邮箱,
其他参数不再截图,自己试试