常用校驗注解之@NotNull,@NotBlank,@NotEmpty的區(qū)別及說明
實體字段校驗 @NotNull、@NotEmpty、@NotBlank
1.@NotNull
不能為 null,但可以為 empty,一般用在 Integer 類型的基本數(shù)據(jù)類型的非空校驗上,而且被其標(biāo)注的字段可以使用 @size、@Max、@Min 對字段數(shù)值進行大小的控制
2.@NotEmpty
不能為 null,且長度必須大于 0,一般用在集合類上或者數(shù)組上
3.@NotBlank
只能作用在接收的 String 類型上,注意是只能,不能為 null,而且調(diào)用 trim() 后,長度必須大于 0即:必須有實際字符
- 注意在使用 @NotBlank 等注解時,一定要和 @valid 一起使用,否則 @NotBlank 不起作用。
- 一個 BigDecimal 的字段使用字段校驗標(biāo)簽應(yīng)該為 @NotNull。
- 在使用 @Length 一般用在 String 類型上可對字段數(shù)值進行最大長度限制的控制。
- 在使用 @Range 一般用在 Integer 類型上可對字段數(shù)值進行大小范圍的控制。
如下圖示:

如下示例:
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) | 限制必須為一個不小于指定值的數(shù)字 |
| @Max(value) | 限制必須為一個不大于指定值的數(shù)字 |
| @DecimalMin(value) | 被限制的元素必須是一個數(shù)字,其值必須大于等于指定的最小值 |
| @DecimalMax(value) | 被限制的元素必須是一個數(shù)字,其值必須小于等于指定的最大值 |
| @Size(max,min) | 限制字符長度必須在min到max的指定范圍內(nèi) |
| @Digits(integer,fraction) | 限制必須為一個小數(shù),且整數(shù)部分的位數(shù)不能超過integer、小數(shù)部分的位數(shù)不能超過fraction的在可接受的范圍內(nèi) |
| @Past | 被限制的元素(日期類型)必須是一個過去的日期 |
| @Future | 被限制的元素(日期類型)必須是一個將來的日期 |
| @Pattern(value) | 限制必須符合指定的正則表達式 |
| 被限制的元素值為是電子郵件地址,也可以通過正則表達式和flag指定自定義的email | |
| @Length | 被限制的字符串的大小必須在指定的范圍內(nèi) |
| @NotEmpty | 被限制的字符串必須非空(不為null且不為空) |
| @Range | 被限制的元素必須在合適的范圍內(nèi) |
附@JsonFormat
有時使用 @JsonFormat 注解時,查到的時間可能會比數(shù)據(jù)庫中的時間少八個小時,這是由于時區(qū)差引起的,JsonFormat 默認的時區(qū)是 Greenwich Time, 默認的是格林威治時間,而我們是在東八區(qū)上,所以時間會比實際我們想得到的時間少八個小時。
需要在后面加上一個時區(qū)
如下示例:
@JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8") private Date date;
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
IntelliJ IDEA 刷題利器 LeetCode 插件詳解
這篇文章主要介紹了IntelliJ IDEA 刷題利器 LeetCode 插件,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08
springboot 中異步任務(wù),定時任務(wù),郵件任務(wù)詳解
這篇文章主要介紹了springboot 與異步任務(wù),定時任務(wù),郵件任務(wù),本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-09-09
詳解如何為SpringBoot項目中的自定義配置添加IDE支持
在SpringBoot項目中利用maven的generate插件
使用@PathVariable注解如何實現(xiàn)動態(tài)傳值

