SpringBoot 注解@NotBlank、@NotNull、@NotEmpty的区别以及用法

本文详细介绍了@NotNull、@NotBlank及@NotEmpty三个验证注解的使用方法,并通过具体代码示例展示了如何在Java实体类中应用这些注解进行数据校验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

@NotNull 验证对象是否不为null, 无法查检长度为0的字符串.
@NotBlank 检查约束 (字符串) 是不是Null还有被Trim的长度是否大于0,只对字符串,且会去掉前后空格.
@NotEmpty 检查(集合)约束元素是否为NULL或者是EMPTY.

@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class DepartmentDto extends BaseDto {

    @NotBlank(message = "部门名称不能为空!")
    private String departmentName;

    @NotEmpty(message = "所属单位不能为空!")
    private String belongCompany;

    private String superDepartment;

    @NotNull(message = "上级部门id不能为null")
    private String superId;
}

注意在使用@NotBlank等注解时,一定要和@valid一起使用,不然他们将不起什么作用,就纯是一个注解了。

@PostMapping("add_department")
@ApiOperation(value = "添加部门")
public BaseResponse addDepartment(@Valid DepartmentDto departmentDto, BindingResult bindingResult) {
    if(bindingResult.hasErrors()){
        return BaseResponse.builder().code(ResultCode.FAILURE)
                .message(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()).build();
    }
    Boolean depart = departmentService.addDepartment(departmentDto);
    if (depart) {
        return BaseResponse.builder().code(ResultCode.SUCCESS).message("添加成功!").build();
    } else {
        return BaseResponse.builder().code(ResultCode.FAILURE).message("添加失败!").build();
    }
}
@NotBlank测试样例

@NotEmpty测试样例

@NotNull测试样例(可以为空字符串)

 

 总结:  1.注意注解引用的包

            import javax.validation.constraints.NotBlank;
            import javax.validation.constraints.NotEmpty;
            import javax.validation.constraints.NotNull;

   2. @NotEmpty 用在集合类上面更适合,我这里就直接用在了字符串上面
    @NotBlank 用在String上面
    @NotNull    用在基本类型上

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

wang_1220

您的随性就是我创作的最大动力!

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

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

打赏作者

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

抵扣说明:

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

余额充值