最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

1.@Length

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

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

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

示例:

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 用于驗證數(shù)字(如 int、long、BigDecimal 等)是否在指定的范圍內(nèi)。

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

  • 常見用途:驗證用戶輸入的數(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
驗證類型用于驗證字符串的長度范圍用于驗證數(shù)值(如整數(shù)、浮點數(shù))的范圍
適用數(shù)據(jù)類型字符串(String數(shù)字(int、longBigDecimal 等)
常見用途限制文本長度(例如用戶名、密碼等)限制數(shù)字值(例如價格、年齡等)

總結(jié):

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

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

3.@NotNull

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

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

  • 注意:@NotNull 不會驗證空字符串 ("")、空集合或空數(shù)組,它只關注字段是否為 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,驗證將失敗。

4.@NotBlank

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

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

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

示例:

import javax.validation.constraints.NotBlank;

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

主要區(qū)別:

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

總結(jié):

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

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

使用場景:

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

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

5.@Min

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

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

  • 常見用途:驗證年齡下限、金額最小值、數(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 用于驗證數(shù)值是否小于或等于指定的最大值。

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

  • 常見用途:驗證年齡上限、金額最大值、數(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 用于驗證集合(如 List、Set)、數(shù)組或字符串的大小(長度)是否在指定范圍內(nèi)。

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

  • 常見用途:驗證列表長度、字符串長度、數(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 列表的元素數(shù)量必須在 1 到 10 之間。

總結(jié)

注解適用類型驗證邏輯示例參數(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)

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

相關文章

  • SpringBoot多模塊項目中優(yōu)雅實現(xiàn)自動配置的完整指南

    SpringBoot多模塊項目中優(yōu)雅實現(xiàn)自動配置的完整指南

    在 Spring Boot 開發(fā)中,自動配置 是一個繞不開的核心能力,本文將結(jié)合一個 RabbitService 自動配置的示例,完整講解如何在 Spring Boot 多模塊項目中實現(xiàn)自動配置,希望對大家有所幫助
    2026-02-02
  • 深入理解Struts2國際化信息機制

    深入理解Struts2國際化信息機制

    本篇文章主要介紹了深入理解Struts2國際化信息機制,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • Java虛擬機之類加載

    Java虛擬機之類加載

    這篇文章主要介紹了Java虛擬機之類加載,文中有非常詳細的代碼示例,對正在學習java的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-05-05
  • Spring注解@Autowired和@Resource的區(qū)別詳解

    Spring注解@Autowired和@Resource的區(qū)別詳解

    這篇文章主要介紹了Spring注解@Autowired和@Resource的區(qū)別詳解,@Autowired與@Resource都可以用來裝配bean,都可以寫在字段或setter方法上,@Resource是JDK提供的注解,默認按照名稱進行裝配,名稱可通過name屬性進行指定,需要的朋友可以參考下
    2023-12-12
  • Java守護線程用法實例分析

    Java守護線程用法實例分析

    這篇文章主要介紹了Java守護線程用法,結(jié)合實例形式分析了java守護線程相關的原理、用法及相關操作注意事項,需要的朋友可以參考下
    2019-10-10
  • Java中GC的工作原理詳細介紹

    Java中GC的工作原理詳細介紹

    這篇文章主要介紹了Java中GC的工作原理詳細介紹的相關資料,需要的朋友可以參考下
    2017-03-03
  • Java中的Object類用法總結(jié)

    Java中的Object類用法總結(jié)

    Java是一種面向?qū)ο蟮木幊陶Z言,它提供了一個非常強大的類庫,其中一個基本類是Object類,下面這篇文章主要給大家介紹了Java中Object類用法的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-04-04
  • Intellij IDEA 關閉和開啟自動更新的提示?

    Intellij IDEA 關閉和開啟自動更新的提示?

    這篇文章主要介紹了Intellij IDEA 關閉和開啟自動更新的提示操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • IDEA生成項目maven-tree依賴目錄樹結(jié)構(gòu)方式

    IDEA生成項目maven-tree依賴目錄樹結(jié)構(gòu)方式

    這篇文章主要介紹了IDEA生成項目maven-tree依賴目錄樹結(jié)構(gòu)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Lombok中@Accessors注解的使用及說明

    Lombok中@Accessors注解的使用及說明

    Lombok是一個Java庫,旨在通過注解減少代碼量,提高效率,@Accessors注解是其中一種工具,用于簡化Java類的訪問器方法,這個注解允許配置訪問器的生成方式,包括是否使用fluent風格、是否忽略字段前綴以及是否支持鏈式調(diào)用,從而使代碼更簡潔、易讀
    2025-10-10

最新評論

五常市| 河北省| 贺州市| 花莲市| 同江市| 石狮市| 陆河县| 中阳县| 梨树县| 汪清县| 儋州市| 勐海县| 贵南县| 三亚市| 枞阳县| 玉环县| 新竹县| 西畴县| 中江县| 化德县| 营山县| 永安市| 民乐县| 花垣县| 门头沟区| 柞水县| 浪卡子县| 即墨市| 晋州市| 东明县| 石棉县| 玛沁县| 黑龙江省| 攀枝花市| 永吉县| 宿松县| 兴国县| 军事| 昌黎县| 民权县| 焉耆|