欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中常見的數(shù)據(jù)驗(yàn)證注解總結(jié)大全

 更新時間:2025年07月11日 10:32:02   作者:你好胖同學(xué)  
在Java開發(fā)中數(shù)據(jù)校驗(yàn)是確保應(yīng)用程序的數(shù)據(jù)完整性和一致性的重要步驟,這篇文章主要介紹了Java中常見的數(shù)據(jù)驗(yàn)證注解的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

1.@Length

  • 功能:@Length 用于驗(yàn)證字符串的長度是否在指定的范圍內(nèi)。

  • 適用場景:它只適用于字符串類型的字段。該注解可以用來限制字符串的最小長度和最大長度。

  • 常見用途:驗(yàn)證用戶輸入的文本(例如用戶名、密碼等)的長度是否滿足要求。

示例:

import org.hibernate.validator.constraints.Length;

public class User {
    
    @Length(min = 5, max = 15, message = "Username must be between 5 and 15 characters")
    private String username;
    
    // getters and setters
}
  • 在這個例子中,@Length(min = 5, max = 15) 表示 username 字段的長度必須在 5 到 15 個字符之間。

2.@Range

  • 功能:@Range 用于驗(yàn)證數(shù)字(如 int、long、BigDecimal 等)是否在指定的范圍內(nèi)。

  • 適用場景:它通常用于數(shù)值類型的數(shù)據(jù)(如整數(shù)或浮動小數(shù))。你可以指定數(shù)值的最小值和最大值。

  • 常見用途:驗(yàn)證用戶輸入的數(shù)字(例如年齡、評分等)是否在一個合理的范圍內(nèi)。

示例:

import org.hibernate.validator.constraints.Range;

public class Product {
    
    @Range(min = 1, max = 10000, message = "Price must be between 1 and 10000")
    private int price;
    
    // getters and setters
}
  • 在這個例子中,@Range(min = 1, max = 10000) 表示 price 字段的值必須在 1 到 10,000 之間。

主要區(qū)別:

特性@Length@Range
驗(yàn)證類型用于驗(yàn)證字符串的長度范圍用于驗(yàn)證數(shù)值(如整數(shù)、浮點(diǎn)數(shù))的范圍
適用數(shù)據(jù)類型字符串(String數(shù)字(int、long、BigDecimal 等)
常見用途限制文本長度(例如用戶名、密碼等)限制數(shù)字值(例如價格、年齡等)

總結(jié):

  • @Length 是針對字符串類型的長度驗(yàn)證,主要用于限制字符串的最小和最大長度。

  • @Range 是針對數(shù)值類型的范圍驗(yàn)證,主要用于限制數(shù)字的最小和最大值

3.@NotNull

  • 功能:@NotNull 用于驗(yàn)證一個字段的值是否為 null。如果該字段的值為 null,則驗(yàn)證失敗。

  • 適用場景:它適用于所有類型的字段(包括字符串、數(shù)字、對象等),用來確保該字段不能為 null

  • 注意:@NotNull 不會驗(yàn)證空字符串 ("")、空集合或空數(shù)組,它只關(guān)注字段是否為 null。

示例:

import javax.validation.constraints.NotNull;

public class User {
    
    @NotNull(message = "Username cannot be null")
    private String username;
    
    // getters and setters
}
  • 在這個例子中,@NotNull 確保 username 字段的值不能為 null。如果它是 null,驗(yàn)證將失敗。

4.@NotBlank

  • 功能:@NotBlank 用于驗(yàn)證一個字符串字段不能為 null、不能為空字符串(""),并且不能只包含空白字符(如空格、制表符等)。它比 @NotNull 更嚴(yán)格,確保字符串不僅非空,還必須包含至少一個非空白字符。

  • 適用場景:它專門用于字符串類型的字段,確保字符串有有效的內(nèi)容。

  • 注意:@NotBlank 不僅會驗(yàn)證 null,還會驗(yàn)證字符串是否為空或者只包含空格。

示例:

import javax.validation.constraints.NotBlank;

public class User {
    
    @NotBlank(message = "Username cannot be blank")
    private String username;
    
    // getters and setters
}
  • 在這個例子中,@NotBlank 確保 username 字段的值不能為 null,也不能是一個空字符串或只包含空白字符。如果是,驗(yàn)證將失敗。

主要區(qū)別:

特性@NotNull@NotBlank
驗(yàn)證內(nèi)容僅驗(yàn)證字段是否為 null驗(yàn)證字段是否為 null 或空白字符串(包括只包含空格)
適用類型適用于任何類型的字段(String、Integer、對象等)僅適用于字符串類型的字段(String
驗(yàn)證條件只關(guān)注字段是否為 null確保字段非 null 且包含至少一個非空白字符
常見用途確保字段的值不能為 null確保字符串字段非空且不為空白

總結(jié):

  • @NotNull 主要用來確保字段不為 null,適用于任何類型的字段。

  • @NotBlank 主要用于字符串類型的字段,確保字段不僅不為 null,而且不為空字符串,也不包含僅空白字符。

使用場景:

  • 如果你想驗(yàn)證某個字段不能為 null,使用 @NotNull。

  • 如果你想驗(yàn)證某個字符串字段不能為 null 或者空白字符串,使用 @NotBlank。

5.@Min

  • 功能:@Min 用于驗(yàn)證數(shù)值(如整數(shù)、浮點(diǎn)數(shù)等)是否大于或等于指定的最小值。

  • 適用場景:適用于基本數(shù)值類型(如 int、longfloat、double 及其包裝類),以及字符串表示的數(shù)值(需確保字符串可轉(zhuǎn)換為數(shù)值類型)。

  • 常見用途:驗(yàn)證年齡下限、金額最小值、數(shù)量下限等場景。

示例:

import javax.validation.constraints.Min;

public class Product {
    
    @Min(value = 0, message = "Price cannot be negative")
    private double price;
    
    // getters and setters
}
  • 在這個例子中,@Min(value = 0) 表示 price 字段的值必須大于或等于 0。

6.@Max

  • 功能:@Max 用于驗(yàn)證數(shù)值是否小于或等于指定的最大值。

  • 適用場景:與 @Min 類似,適用于基本數(shù)值類型及可轉(zhuǎn)換為數(shù)值的字符串。

  • 常見用途:驗(yàn)證年齡上限、金額最大值、數(shù)量上限等場景。

示例:

import javax.validation.constraints.Max;

public class AgeVerification {
    
    @Max(value = 150, message = "Age cannot exceed 150")
    private Integer age;
    
    // getters and setters
}
  • 在這個例子中,@Max(value = 150) 表示 age 字段的值必須小于或等于 150。

7.@Size

  • 功能:@Size 用于驗(yàn)證集合(如 List、Set)、數(shù)組或字符串的大?。ㄩL度)是否在指定范圍內(nèi)。

  • 適用場景:適用于字符串、集合類、數(shù)組等可計(jì)算大小的對象。

  • 常見用途:驗(yàn)證列表長度、字符串長度、數(shù)組大小等場景。

示例:

import javax.validation.constraints.Size;
import java.util.List;

public class ShoppingCart {
    
    @Size(min = 1, max = 10, message = "Must select between 1 and 10 items")
    private List<String> items;
    
    // getters and setters
}
  • 在這個例子中,@Size(min = 1, max = 10) 表示 items 列表的元素?cái)?shù)量必須在 1 到 10 之間。

總結(jié)

注解適用類型驗(yàn)證邏輯示例參數(shù)
@Min數(shù)值類型(及可轉(zhuǎn)換為數(shù)值的字符串)最小值約束(≥ 指定值)@Min(18)
@Max數(shù)值類型(及可轉(zhuǎn)換為數(shù)值的字符串)最大值約束(≤ 指定值)@Max(100)
@Size字符串、集合、數(shù)組大小/長度約束(min ≤ size ≤ max)@Size(min=1, max=5)

到此這篇關(guān)于Java中常見數(shù)據(jù)驗(yàn)證注解的文章就介紹到這了,更多相關(guān)Java數(shù)據(jù)驗(yàn)證注解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論