java 校验注解之 @NotNull、@NotBlank、@NotEmpty



实体字段校验 @NotNull、@NotEmpty、@NotBlank

1.@NotNull

不能为 null,但可以为 empty,一般用在 Integer 类型的基本数据类型的非空校验上,而且被其标注的字段可以使用 @size、@Max、@Min 对字段数值进行大小的控制

2.@NotEmpty

不能为 null,且长度必须大于 0,一般用在集合类上或者数组上

3.@NotBlank

只能作用在接收的 String 类型上,注意是只能,不能为 null,而且调用 trim() 后,长度必须大于 0即:必须有实际字符



  • 注意在使用 @NotBlank 等注解时,一定要和 @valid 一起使用,否则 @NotBlank 不起作用。
  • 一个 BigDecimal 的字段使用字段校验标签应该为 @NotNull。
  • 在使用 @Length 一般用在 String 类型上可对字段数值进行最大长度限制的控制。
  • 在使用 @Range 一般用在 Integer 类型上可对字段数值进行大小范围的控制。


如下图示:

在这里插入图片描述




如下示例:

1.String name = null;

@NotNull: false
@NotEmpty:false
@NotBlank:false

2.String name = “”;

@NotNull:true
@NotEmpty: false
@NotBlank: false

3.String name = " ";

@NotNull: true
@NotEmpty: true
@NotBlank: false

4.String name = “Hello World!”;

@NotNull: true
@NotEmpty:true
@NotBlank:true



  • 常用的校验注解


    javax.validation.constraints.xxx

    注解说明
    @Null被注释的元素必须为null
    @NotNull被注释的元素不能为null
    @AssertTrue被注释的元素必须为true
    @AssertFalse被注释的元素必须为false
    @Min(value)被注释的元素必须是一个数字,其值必须大于等于指定的最小值
    @Max(value)被注释的元素必须是一个数字,其值必须小于等于指定的最大值
    @DecimalMin(value)被注释的元素必须是一个数字,其值必须大于等于指定的最小值
    @DecimalMax(value)被注释的元素必须是一个数字,其值必须小于等于指定的最大值
    @Size(max,min)被注释的元素的大小必须在指定的范围内。
    @Digits(integer,fraction)被注释的元素必须是一个数字,其值必须在可接受的范围内
    @Past被注释的元素必须是一个过去的日期
    @Future被注释的元素必须是一个将来的日期
    @Pattern(value)被注释的元素必须符合指定的正则表达式。
    @Email被注释的元素必须是电子邮件地址
    @Length被注释的字符串的大小必须在指定的范围内
    @NotEmpty被注释的字符串必须非空
    @Range被注释的元素必须在合适的范围内


    • 附 @JsonFormat

    有时使用 @JsonFormat 注解时,查到的时间可能会比数据库中的时间少八个小时,这是由于时区差引起的,JsonFormat 默认的时区是 Greenwich Time, 默认的是格林威治时间,而我们是在东八区上,所以时间会比实际我们想得到的时间少八个小时。需要在后面加上一个时区,如下示例:

    
    @JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
    private Date date;
    
    • 51
      点赞
    • 192
      收藏
      觉得还不错? 一键收藏
    • 0
      评论
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

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

    余额充值