mybatis-plus整合@Valid参数校验

1.使用MyBatisCodeHelperPro生成实体类
使用插件来生成实体类以及mapper以节省开发时间
https://blog.csdn.net/weixin_39025362/article/details/108214020

2.@Valid 注解类型的使用

注解作用
@NotNull参数不能为null
@NotBlank参数值不不为null,且去除首尾空格后长度不为0,多于用字符串
@NotEmpty参数不为null且不为空,字符串长度不为0、集合大小不为0
@Size(max,min)参数字符长度必须在min到max之间
@Pattern(value)参数必须符合指定的正则表达式
@Null参数只能为null
@Email参数值是邮箱格式,也可以通过@Pattern自定义正则表达式来实现
@Past参数必须是过去的日期
@Future参数必须是未来的日期
@Max(value)参数不能大于value的值
@Min(value)参数不能小于value的值

3.添加需要校验的参数

@Data
@TableName(value = "project")
@ApiModel(value = "项目-实体")
public class Project {
    @TableId(value = "id", type = IdType.AUTO)
    @ApiModelProperty(value = "id")
    private Long id;

    /**
     * 项目名称
     */
    @TableField(value = "project_name")
    @ApiModelProperty(value = "项目名称")
    @NotNull(message = "项目名称不能为空")
    @NotBlank(message = "项目名称不能为空")
    private String projectName;

    /**
     * 创建人
     */
    @TableField(value = "creator")
    @ApiModelProperty(value = "创建人姓名")
    @Size(max = 20, min = 2,message = "创建人姓名长度需要在2-20字符长度之间")
    private String creator;

    /**
     * 创建时间
     */
    @TableField(value = "create_time")
    @ApiModelProperty(value = "创建时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 更新时间
     */
    @TableField(value = "update_time")
    @ApiModelProperty(value = "更新时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /**
     * 描述信息
     */
    @TableField(value = "description")
    @ApiModelProperty(value = "描述信息")
    private String description;
}

4.定义全局异常处理器

新建一个类ExceptionHandler,在这个类上加上@ControllerAdvice或@RestControllerAdvice注解,就配置成全局处理类了。这个取决于你的Controller层用的是@Controller还@RestController来决定。

然后@ExceptionHandler注解并指定需要处理的异常类型,接着在方法内编写对该异常的操作逻辑,即可完成对异常信息的处理,因为参数校验失败会抛出MethodArgumentNotValidException,我们拿到自定义的异常错误信息进行返回即可。

@RestControllerAdvice
public class ExceptionHandler {

    @ExceptionHandler(MethodArgumentNotValidException.class)
    public String MethodArgumentNotValidExceptionHandler(MethodArgumentNotValidException e) {
        ObjectError objectError = e.getBindingResult().getAllErrors().get(0);
        return objectError.getDefaultMessage();
    }
    
}

参考文章:Spring框架 之@Valid注解的使用(嵌套类型的效验)

  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高并发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值