在web开发当前就会遇到一些数据有效性验证的相关代码编写。
一般的写法如:
public class User { public String username; public String password; public Integer age; }
public addUser(User user) {
String username = user.getUsername();
Integer age = user.getAge();
String password = user.getPassword();
String errorMsg = "";
if(username == null || username.equals("") {
errotMsg += "用户名不可为空";
}
// ..........很多if,有多少个写多少个,太机械了。就一代码搬运工。
}
java 后台验证相关问题:
javax.validation.Validator
org.hibernate.validator.internal.engine.ValidatorImpl
1、User添加注释
public class User { @NotNull public String username; @NotNull public String password; @NotNull public Integer age; }
public addUser(User user) { Iterator<ConstraintViolation<Object>> iterator = validator.validate(user) StringBuilder buf = new StringBuilder(256); while (iterator.hasNext()) { buf.append(";"); ConstraintViolation<?> elem = iterator.next(); if (elem != null) { buf.append(elem.getPropertyPath() + elem.getMessage()); } } System.out.println(buf); }
utils 拿去用吧。
public class Validators { private static class ValidatorHolder { static Validator validator = new Validators().getValidator(); } private final Logger logger = LoggerFactory.getLogger(Validators.class); private final ValidatorFactory factory; private Validators() { try { Configuration<?> factoryCfg = Validation.byDefaultProvider().configure(); factory = factoryCfg.buildValidatorFactory(); } catch (final ValidationException ex) { logger.error("Bean Validation provider can not be found, no validation will be performed"); throw ex; } } private Validator getValidator() { return factory.getValidator(); } /** * 校验指定bean的单个属性值 * @param bean 需要校验的bean * @param name 需要校验的属性名 * @return 需要校验的属性的错误信息 */ public static String validateProperty(Object bean, String name) { return parseConstraintViolations(ValidatorHolder.validator.validateProperty(bean, name)); } /** * 校验指定bean的全部属性 * @param bean 需要校验的bean * @return 所有错误信息 */ public static String validate(Object bean) { return parseConstraintViolations(ValidatorHolder.validator.validate(bean)); } public static String parseConstraintViolations(Set<ConstraintViolation<Object>> constraintViolations) { if (CollectionUtils.isEmpty(constraintViolations)) { return null; } Iterator<ConstraintViolation<Object>> iterator = constraintViolations.iterator(); ConstraintViolation<Object> first = iterator.next(); //单个校验错误 if (!iterator.hasNext()) { return first.getPropertyPath() + first.getMessage(); } // two or more elements StringBuilder buf = new StringBuilder(256); //Java default is 16, probably too small if (first != null) { buf.append(first.getPropertyPath() + first.getMessage()); } while (iterator.hasNext()) { buf.append(";"); ConstraintViolation<?> elem = iterator.next(); if (elem != null) { buf.append(elem.getPropertyPath() + elem.getMessage()); } } return buf.toString(); } }
相关推荐
java代码实现的数据校验类,包括奇偶校验和CRC校验等
java数据校验工具类,校验日期、邮箱、数字、电话号码等数据
2. 类似JQuery的验证,传入的json字符串必须是符合Json规则的字符串如下格式: "{rules : {amount : {required: true,number: true,greaterThan:0},cards:{required: true}},messages : {amount : {required: \"充值...
这个是使用java语言 poi导入excel到数据库中,同时使用了xml对excel的每个单元格数据进行了非空验证。经测试,导入数据库成功。
JAVA中进行数据完整性验证 最近在看JAVA安全方面的东东。简单地说,安全包括访问控制、数据安全两部分。安全访问控制是根据系统需求进行设计的,对资源进行访问控制的一种措施。而数据安全包括数据传输过程中的安全...
Java后台验证框架
NULL 博文链接:https://skycb.iteye.com/blog/2363483
另外Hibernate也提供了类似功能的基于java注解的校验,我们产品也需要这种功能,无奈用的是JavaEE5,因此我自己写了一个简单的基于注解的校验框架,可以校验一些简单的数据类型,满足基本的需求。源码和UT都在里面。
java验证文件真实格式和编码格式工具类,验证文件的文件格式和文件的编码格式给出正确的文件类型以及编码格式,从此解决文件解析乱码问题的烦恼
Java 数据挖掘包(JDMP)是一个开源的Java程序库,用于数据分析和机器学习。它能够促进对数据源和机器学习算法(如,聚类、回归、分类、图形模式和优化)的访问,并且提供了可视化模块。它包含一个用于存储和处理...
Java向数据库中插入大量数据时的优化
java表单的验证,代码大全,简单实用,对学习帮助极大
基于java的开发源码-JAXP数据验证引擎 Serene.zip 基于java的开发源码-JAXP数据验证引擎 Serene.zip 基于java的开发源码-JAXP数据验证引擎 Serene.zip 基于java的开发源码-JAXP数据验证引擎 Serene.zip 基于java的...
java处理excel数据 如读取excel中的数据 进行筛选数据
Java源码对添加数据进行数据验证.rar
struts2 类型转换 数据校验
java 解析Excel 并判断解析的数据类型__Eclipse工程,纯手工,无复制
最新数据验证身份证号15位18位,手机号移动、联通、电信以及新147号段
通过对某测区的Li DAR点云数据进行处理,并比较了不同语言环境下的处理结果,验证了在Java语言环境下该方法进行Li DAR点云数据处理的可行性,以及利用该方法引入树结构的网格空间索引在Java语言环境下的实现性。
此篇文章主要选取关键性指标,数据校验数据源Hive和目标ES内的数据是否一致; 因为你不知道将Hive的数据导入到了ElasticSearch后,数据量是否准确,所以需要钉钉报警校验ElasticSearch和Hive数据仓库内的数据质量,...