学习视频
黑马程序员SpringBoot3+Vue3全套视频教程,springboot+vue企业级全栈开发从基础、实战到面试一套通关
更新用户基本信息
代码逻辑
① controller
// 注意 Postmapping 和 @PutMapping 的区别
如果执行添加操作, 后面的添加请求不会覆盖前面的请求, 所以使用 @Postmapping
如果执行修改操作, 后面的修改请求会把前面的请求给覆盖掉, 所以使用 @PutMapping
② Service 层 和 Service 的实现类
其实看到,Service 是要进行数据处理的,并不是什么都不做,直接打包给 Mapper 层。他是有脑子的,而 mapper层 是真正的体力层,不需要有脑子
③ mapper 层
存在问题
没有参数校验
对变量的参数校验可以直接用@Pattern 注解,但此案例要校验的是 User 对象,这该如何校验呢?
① 直接操作 User实体类,在实体类的对象上添加注解
② 要想让这些注解生效,得在具体使用该实体类的地方添加 @Validated 注解
更新用户头像
代码逻辑
① controller
② ServiceImpl
③ mapper
④ 参数校验,传过来的 avatUrl 必须是 一个 url 地址
更新用户密码
代码逻辑
请求参数说明
1、更新用户信息的请求参数 (各请求参数见大数据接口文档)
请求类型为 json,但 id、username、nickname 与 user 属性一一对应。所以用 User user 介绍
2、更改用户密码 请求参数
请求类型为 json ,不对应,只能用 Map<String, String>
代码
① controller
② serviceImpl
③ mapper
文章分类列表
代码逻辑
① controller
② serviceImpl
③ mapper
问题
返回数据的 creatTime 和 updateTime 格式不对
解决方案:在Category 实体类属性上添加 @JsonFormat 注解
分组校验
问题描述
处理 category 参数校验时, 新增文章分类 add( ),只需要categoryName 和 categoryAlias 不为空就行,id 由数据库自动生成
而更新文章分类需要 id 、tegoryName 和 categoryAlias 都不为空,这就出现了一个问题,如果满足 更新文章分类的要求的话,给 id 加上 @ NotNull 的注解,那就 新增不了文章分类了,因为add 是没有id的,全靠数据库自动生成
所以需要分组分类校验
补充
// 如果说某个校验项没有指定分组,默认属于 Default 分组
// 分组之间可以继承,A extends B 那么 A 中拥有 B 的所有校验项
Mapping
@GetMapping
// @GetMapping: 是一个组合注解, 通常用来处理get请求,常用于执行查询操作。
// 是@RequestMapping(value="这里写的是请求的路径",method = RequestMethod.GET)的缩写。
@PostMapping
// @PostMapping:是一个组合注解, 通常用来处理post请求,常用于执行添加操作。
// 是@RequestMapping(value="这里写的是请求的路径",method = RequestMethod.POST)的缩写。写请求路径
@PutMapping
// @PutMapping:是一个组合注解,通常用来处理put请求,常用于执行更新操作。
// 是@RequestMapping(value="这里写的是请求的路径",method = RequestMethod.PUT)的缩写。写请求路径
@DeleteMapping
// @DeleteMapping:是一个组合注解。通常用来处理delete请求,常用于执行删除操作。
// 是@RequestMapping(value="这里写的是请求的路径",method = RequestMethod.DELETE)的缩写。写请求路径