Java实体类--字段校验

本文详细介绍了Java实体类字段校验的方法,包括@Valid和@Validated注解的区别,以及针对String、数值、集合、Boolean值和日期的多种校验方式,如非空、长度、正则、邮件格式、数值范围等。使用这些校验可以提高API接口的可靠性,避免数据错误。
摘要由CSDN通过智能技术生成

目录

引言:

 拓展2:

1. 针对String的校验:

1.1 非空校验

1.2 长度校验

1.3 正则校验

1.4 邮件校验

2. 针对数值的校验

2.1 非空校验

2.2 最值校验

2.3 BigDecimal校验

2.4 小数位数校验

2.5 数值上下限校验

2.6 正数、负数与零校验

3. 针对集合的校验

3.1 非空校验

3.2 集合大小校验

4. Boolean 值校验

5.  日期校验

6. 其他校验


引言:

        日常开发中,我们时常需要提供可靠的 API 接口,此时对于请求的入参就需要校验,以保证最终数据入库的正确性,这就成了必不可少的活。

        例如说,用户注册时,会校验手机格式的正确性、邮箱格式的正确性、密码非弱密码等。

        但是如果使用 if-else 这种代码去校验, 那么需要校验的地方有很多情况下,代码量就会变的十分臃肿,代码也不优雅,那么如何解决这个问题呢?

 拓展1:

        validation 技术在Java中运用最早在2009 年,Java 官方提出了 Bean Validation 规范,而后经历了JSR303、JSR349、JSR380 三次标准的更迭,发展到了 2.0 。

        Bean Validation 和 我们以前学习过的 JPA 一样,只提供规范,不提供具体的实现。因此实际使用过程,常用的是

可以使用阿里巴巴的 EasyExcel 库来读取 Excel 并将其转换为实体类对象,同时还可以对字段进行校验。 以下是一个简单的示例代码: ```java // 定义实体类 public class User { @NotEmpty(message = "姓名不能为空") private String name; @NotNull(message = "年龄不能为空") @Min(value = 18, message = "年龄必须大于等于18岁") private Integer age; @Email(message = "邮箱格式不正确") private String email; // 省略 getter 和 setter 方法 } // 读取 Excel 并转换为实体类校验字段 public List<User> readExcel(File file) throws Exception { List<User> userList = new ArrayList<>(); ExcelReader reader = EasyExcel.read(file).build(); try { Sheet sheet = reader.getSheets().get(0); // 定义读取监听器 reader.read(sheet.getSheetNo()).head(User.class).registerReadListener(new AnalysisEventListener<User>() { @Override public void invoke(User user, AnalysisContext analysisContext) { // 校验字段 Validator validator = Validation.buildDefaultValidatorFactory().getValidator(); Set<ConstraintViolation<User>> violations = validator.validate(user); if (!violations.isEmpty()) { throw new RuntimeException(violations.iterator().next().getMessage()); } userList.add(user); } @Override public void doAfterAllAnalysed(AnalysisContext analysisContext) { // 读取完成后的操作 } }).sheet().doRead(); } finally { reader.finish(); } return userList; } ``` 在上述代码中,我们首先定义了一个 `User` 实体类,并且在字段上使用了校验注解。然后使用 EasyExcel 库读取 Excel 文件,并在读取监听器中将每行数据转换为 `User` 对象,并对其进行字段校验。如果校验不通过,则直接抛出异常。最后将转换后的 `User` 对象加入到 `userList` 中并返回。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值