大事件项目记录10-文章分类接口开发-更新文章分类

发布于:2025-06-30 ⋅ 阅读:(19) ⋅ 点赞:(0)

四、更新文章分类。

        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{

    }
}

网站公告

今日签到

点亮在社区的每一天
去签到