diff --git a/ValidatorUtils.java b/ValidatorUtils.java new file mode 100644 index 0000000..347181b --- /dev/null +++ b/ValidatorUtils.java @@ -0,0 +1,39 @@ +package com.utils; + +// 导入必要的Java工具类 +import java.util.Set; +// 导入验证相关的类 +import javax.validation.ConstraintViolation; +import javax.validation.Validation; +import javax.validation.Validator; +// 导入自定义异常类 +import com.entity.EIException; + +// 数据校验工具类,基于hibernate-validator实现 +public class ValidatorUtils { + // 静态验证器实例 + private static Validator validator; + + // 静态初始化块,初始化验证器 + static { + // 获取默认的验证器工厂并创建验证器实例 + validator = Validation.buildDefaultValidatorFactory().getValidator(); + } + + // 校验对象方法 + // object: 需要校验的对象 + // groups: 可选的校验组 + // 抛出EIException当校验失败时 + public static void validateEntity(Object object, Class... groups) + throws EIException { + // 执行校验并获取校验结果集合 + Set> constraintViolations = validator.validate(object, groups); + // 检查是否有校验错误 + if (!constraintViolations.isEmpty()) { + // 获取第一个校验错误 + ConstraintViolation constraint = (ConstraintViolation)constraintViolations.iterator().next(); + // 抛出包含错误信息的异常 + throw new EIException(constraint.getMessage()); + } + } +} \ No newline at end of file