中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JAVA中怎么利用Hibernate-Validation實現參數驗證

發布時間:2021-06-11 15:41:07 來源:億速云 閱讀:120 作者:Leah 欄目:編程語言

今天就跟大家聊聊有關JAVA中怎么利用Hibernate-Validation實現參數驗證,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

1.maven中引入hibernate-validator對應的jar:

<dependency>
  <groupId>org.hibernate</groupId>
  <artifactId>hibernate-validator</artifactId>
  <version>4.3.1.Final</version> 
</dependency>

2.在Model中定義要校驗的字段:

import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import org.hibernate.validator.constraints.NotEmpty;
 
public class PayRequestDto {
   
  /**
   * 支付完成時間
   **/
  @NotEmpty(message="支付完成時間不能空")
  @Size(max=14,message="支付完成時間長度不能超過{max}位")
  private String payTime;
   
  /**
   * 狀態
   **/
  @Pattern(regexp = "0[0123]", message = "狀態只能為00或01或02或03")
  private String status;
 
  public String getPayTime() {
    return payTime;
  }
 
  public void setPayTime(String payTime) {
    this.payTime = payTime;
  }
 
  public String getStatus() {
    return status;
  }
 
  public void setStatus(String status) {
    this.status = status;
  }
}

3.定義Validation工具類:

import java.util.Set;
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import org.hibernate.validator.HibernateValidator;
import com.atai.framework.lang.AppException;
public class ValidationUtils {
  
  /**
   * 使用hibernate的注解來進行驗證
   * 
   */
  private static Validator validator = Validation
      .byProvider(HibernateValidator.class).configure().failFast(true).buildValidatorFactory().getValidator();
  /**
   * 功能描述: <br>
   * 〈注解驗證參數〉
   *
   * @param obj
   * @see [相關類/方法](可選)
   * @since [產品/模塊版本](可選)
   */
  public static <T> void validate(T obj) {
    Set<ConstraintViolation<T>> constraintViolations = validator.validate(obj);
    // 拋出檢驗異常
    if (constraintViolations.size() > 0) {
      throw new AppException("0001", String.format("參數校驗失敗:%s", constraintViolations.iterator().next().getMessage()));
    }
  }
}

4.在代碼中調用工具類進行參數校驗:

ValidationUtils.validate(requestDto);

以下是對hibernate-validator中部分注解進行描述:

@AssertTrue用于boolean字段,該字段只能為true  
@AssertFalse該字段的值只能為false
@CreditCardNumber對信用卡號進行一個大致的驗證
@DecimalMax只能小于或等于該值
@DecimalMin只能大于或等于該值
@Digits(integer=,fraction=)檢查是否是一種數字的整數、分數,小數位數的數字
@Email檢查是否是一個有效的email地址
@Future檢查該字段的日期是否是屬于將來的日期
@Length(min=,max=)檢查所屬的字段的長度是否在min和max之間,只能用于字符串
@Max該字段的值只能小于或等于該值
@Min該字段的值只能大于或等于該值
@NotNull不能為null
@NotBlank不能為空,檢查時會將空格忽略
@NotEmpty不能為空,這里的空是指空字符串
@Null檢查該字段為空
@Past檢查該字段的日期是在過去
@Pattern(regex=,flag=)被注釋的元素必須符合指定的正則表達式
@Range(min=,max=,message=)被注釋的元素必須在合適的范圍內
@Size(min=, max=)檢查該字段的size是否在min和max之間,可以是字符串、數組、集合、Map等
@URL(protocol=,host,port)檢查是否是一個有效的URL,如果提供了protocol,host等,則該URL還需滿足提供的條件
@Valid該注解主要用于字段為一個包含其他對象的集合或map或數組的字段,或該字段直接為一個其他對象的引用,這樣在檢查當前對象的同時也會檢查該字段所引用的對象

看完上述內容,你們對JAVA中怎么利用Hibernate-Validation實現參數驗證有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

海晏县| 扶余县| 明水县| 罗平县| 罗甸县| 上虞市| 芜湖县| 渭源县| 安义县| 依安县| 辽中县| 广元市| 五常市| 泰和县| 辉南县| 若尔盖县| 汉沽区| 宜城市| 革吉县| 承德县| 宝丰县| 漳平市| 大余县| 通榆县| 溆浦县| 泰州市| 屯留县| 疏勒县| 桃源县| 丽水市| 霍林郭勒市| 河北区| 金沙县| 万山特区| 阿鲁科尔沁旗| 天峨县| 崇义县| 福泉市| 泽州县| 梅州市| 台北市|