SpringBoot3 + Vue3 学习 Day 3

学习视频

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

更新用户基本信息

代码逻辑

image-20240720141453848

① controller

image-20240720143810091

// 注意 Postmapping 和 @PutMapping 的区别
如果执行添加操作, 后面的添加请求不会覆盖前面的请求, 所以使用 @Postmapping
如果执行修改操作, 后面的修改请求会把前面的请求给覆盖掉, 所以使用 @PutMapping

② Service 层 和 Service 的实现类

image-20240720144056668

其实看到,Service 是要进行数据处理的,并不是什么都不做,直接打包给 Mapper 层。他是有脑子的,而 mapper层 是真正的体力层,不需要有脑子

③ mapper 层

image-20240720144332533

存在问题

没有参数校验

image-20240720144640995

对变量的参数校验可以直接用@Pattern 注解,但此案例要校验的是 User 对象,这该如何校验呢?

image-20240720144821604

① 直接操作 User实体类,在实体类的对象上添加注解

image-20240720145415210

② 要想让这些注解生效,得在具体使用该实体类的地方添加 @Validated 注解

image-20240720145559515

更新用户头像

代码逻辑

image-20240721090944725

① controller

image-20240721091028473

② ServiceImpl

image-20240721091100813

③ mapper

image-20240721091151143

④ 参数校验,传过来的 avatUrl 必须是 一个 url 地址

image-20240721091456377

更新用户密码

代码逻辑

image-20240721093417884

请求参数说明

1、更新用户信息的请求参数 (各请求参数见大数据接口文档)

image-20240721093542800

请求类型为 json,但 id、username、nickname 与 user 属性一一对应。所以用 User user 介绍

image-20240721093657749

2、更改用户密码 请求参数

image-20240721093737700

请求类型为 json ,不对应,只能用 Map<String, String>

代码

① controller

image-20240721101014297

② serviceImpl

image-20240721101055295

③ mapper

image-20240721101121661

文章分类列表

代码逻辑

image-20240721133902943

① controller

image-20240721135321404

② serviceImpl

image-20240721135541591

③ mapper

image-20240721135634786

问题

返回数据的 creatTime 和 updateTime 格式不对

image-20240721135837277

解决方案:在Category 实体类属性上添加 @JsonFormat 注解

image-20240721140147859

分组校验

问题描述

处理 category 参数校验时, 新增文章分类 add( ),只需要categoryName 和 categoryAlias 不为空就行,id 由数据库自动生成

image-20240721144416921

而更新文章分类需要 id 、tegoryName 和 categoryAlias 都不为空,这就出现了一个问题,如果满足 更新文章分类的要求的话,给 id 加上 @ NotNull 的注解,那就 新增不了文章分类了,因为add 是没有id的,全靠数据库自动生成

image-20240721144702961

所以需要分组分类校验

image-20240721144936255

补充

// 如果说某个校验项没有指定分组,默认属于 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)的缩写。写请求路径

相关推荐

  1. SpringBoot学习记录(3)

    2024-07-23 04:56:03       28 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-23 04:56:03       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-23 04:56:03       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-23 04:56:03       45 阅读
  4. Python语言-面向对象

    2024-07-23 04:56:03       55 阅读

热门阅读

  1. C 语言基础概念总结

    2024-07-23 04:56:03       17 阅读
  2. word转pdf图变得模糊(解决)

    2024-07-23 04:56:03       14 阅读
  3. Nginx 中如何实现请求的排队机制?

    2024-07-23 04:56:03       16 阅读
  4. 2024.07.14校招 实习 内推 面经

    2024-07-23 04:56:03       18 阅读
  5. 【开源库学习】libodb库学习(十)

    2024-07-23 04:56:03       13 阅读
  6. 【Python】探索 Python 中的 divmod 方法

    2024-07-23 04:56:03       13 阅读
  7. 开发面试算法题求教

    2024-07-23 04:56:03       11 阅读
  8. 容器化Mojo模型:轻量级部署的艺术

    2024-07-23 04:56:03       13 阅读