java entity校验_Java SpringBoot 实体类数据自动验证

package demo.dto;

import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotEmpty;

import java.io.Serializable;

public class ProductDto implements Serializable {

@NotEmpty(message = "姓名 不容许为空")

@Length(min = 2, max = 10, message = "姓名 长度必须在 {min} - {max} 之间")

private String userName;

@NotEmpty(message = "密码 不容许为空")

private String password;

@NotEmpty(message = "真实姓名 不容许为空")

private String realName;

public String getUserName() {

return userName;

}

public void setUserName(String userName) {

this.userName = userName == null ? null : userName.trim();

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password == null ? null : password.trim();

}

public String getRealName() {

return realName;

}

public void setRealName(String realName) {

this.realName = realName == null ? null : realName.trim();

}

/**

*

@NotEmpty,@NotNull和@NotBlank的区别

1 @NotEmpty :不能为null,且Size>0

2 @NotNull:不能为null,但能够为empty,没有Size的约束

3 @NotBlank:只用于String,不能为null且trim()以后size>0

*

@NotNull

使用该注解的字段的值不能为null,不然验证没法经过。

@Null

修饰的字段在验证时必须是null,不然验证没法经过。

@Size

以下代码表示,修饰的字段长度不能超过5或者低于。

@Size(min = 1, max = 5)

private String name;

1

2

@Max

以下代码表示,该字段的最大值为19,不然没法经过验证。

@Max(value = 19)

private Integer age;

1

2

@Min

同理,被该注解修饰的字段的最小值,不能低于某个值。

@AssertFalse

该字段值为false时,验证才能经过。

@AssertTrue

该字段值为true时,验证才能经过。

@DecimalMax

验证小数的最大值。

@DecimalMax(value = "12.35")

private double money;

1

2

@DecimalMin

验证小数的最小值。

@Digits

验证数字的整数位和小数位的位数是否超过指定的长度。

@Digits(integer = 2, fraction = 2)

private double money;

1

2

@Future

验证日期是否在当前时间以后,不然没法经过校验。

@Future

private Date date;

1

2

@Past

验证日期是否在当前时间以前,不然没法经过校验。

@Pattern

用于验证字段是否与给定的正则相匹配。

@Pattern(regexp = "[abc]")

private String name;

*/

}

package demo.entity;

import java.io.Serializable;

public class Product implements Serializable {

private Integer id;

private String userName;

private String password;

private String realName;

public Integer getId() {

return id;

}

public void setId(Integer id) {

this.id = id;

}

public String getUserName() {

return userName;

}

public void setUserName(String userName) {

this.userName = userName == null ? null : userName.trim();

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password == null ? null : password.trim();

}

public String getRealName() {

return realName;

}

public void setRealName(String realName) {

this.realName = realName == null ? null : realName.trim();

}

@Override

public String toString() {

return "Product{" +

"id=" + id +

", username='" + userName + '\'' +

", password='" + password + '\'' +

", realname='" + realName + '\'' +

'}';

}

}

//添加数据

@RequestMapping("/addproduct")

public Object addproduct(@Valid ProductDto model, BindingResult result) {

int errorCount = result.getErrorCount();

MessagePack messagePack = new MessagePack();

// 验证字段是否符合规则

if (result.hasErrors()) {

throw new RuntimeException(result.getFieldError().getDefaultMessage());

} else {

Product product = new Product();

BeanUtils.copyProperties(model, product);

// 操做数据

int i = Convert.toInt(productService.addProduct(product));

// 判断操做成功与否

if (i > 0) {

messagePack.setCode(0);

messagePack.setMessage("新增商品成功");

messagePack.setObject(null);

messagePack.setStatus("OK");

} else {

messagePack.setCode(-1);

messagePack.setMessage("新增商品失败");

messagePack.setObject(null);

messagePack.setStatus("error");

}

}

return messagePack;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值