四、更新文章分类。
CategoryController.java:
@PutMapping
public Result update(@RequestBody @Validated Category category){
categoryService.update(category);
return Result.success();
}
CategoryService:
//更新分类
void update(Category category);
CategoryServiceInterface.java:
@Override
public void update(Category category) {
category.setUpdateTime(LocalDateTime.now());
categoryMapper.update(category);
}
CategoryMapper.java:
//更新
@Update("update category set category_name=#{categoryName},category_alias=#{categoryAlias},update_time=#{updateTime}" +
"where id=#{id} ")
void update(Category category);
使用Postman运行测试:
**********************************************参数校验*****************************************************
分组校验:
把校验项进行归类分组,在完成不同的功能的时候,校验指定组中的校验项。
1.定义分组
2.定义校验项时指定归属的分组
3.校验时指定要校验的分组
在实体类内新增分组:
@Data
public class Category {
@NotNull(groups = Update.class)
private Integer id;//主键ID
@NotEmpty(groups = {Add.class,Update.class})
private String categoryName;//分类名称
@NotEmpty(groups = {Add.class,Update.class})
private String categoryAlias;//分类别名
private Integer createUser;//创建人ID
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;//创建时间
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime;//更新时间
public interface Add{
}
public interface Update{
}
}
指定校验分组:
@PostMapping
public Result add(@RequestBody @Validated(Category.Add.class) Category category){
categoryService.add(category);
return Result.success();
}
@PutMapping
public Result update(@RequestBody @Validated(Category.Update.class) Category category){
categoryService.update(category);
return Result.success();
}
***********************************************注意事项***************************************************
1.如果某个校验项没有指定分组,默认属于Default分组;
2.分组之间可以继承,A extends B那么A中拥有B中所有的校验项 。
故也可这样写:
@Data
public class Category {
@NotNull(groups = Update.class)
private Integer id;//主键ID
@NotEmpty
private String categoryName;//分类名称
@NotEmpty
private String categoryAlias;//分类别名
private Integer createUser;//创建人ID
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;//创建时间
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime;//更新时间
public interface Add extends Default {
}
public interface Update extends Default{
}
}