• Hibernate中的数据合法性校验属性使用合集
  • 发布于 11小时前
  • 16 热度
    0 评论
  • 怪咖豆
  • 0 粉丝 28 篇博客
  •   
概述
在开发过程中,对于前端传递过来的参数,一般都需要进行非空校验、长度校验、正则表达式校验等等,如果参数不符合规范,那么就需要返回错误信息。如果在每一个Controller方法中都写大量的这种if、else之类的判断,就会造成可读性极差的问题。为了解决这种情况,可以引入Hibernate校验对参数进行校验。Hibernate校验是通过在方法参数、实体类属性上添加特定注解来达到参数校验目标,若参数不符合要求则抛出异常。

依赖坐标
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-validation</artifactId>
  <version>3.4.4</version>
</dependency>
常用注解
@NotNull
作用:表示方法参数、实体类属性的值不能为null

属性:

message:错误信息

示例
package wxw.mengyuan.demo.lombok;
import javax.validation.constraints.NotNull;
public class UserInfoEntity {
  @NotNull(message = "不能为null")
  private String name;
  private Integer age;

}
@NotEmpty
作用:表示方法参数、实体类属性的值:一是不能为null;二是当值的Java类型为字符串时,长度不能为0;三是当值的Java类型是集合、数组时,内部元素个数不能为0
属性
message:错误信息
示例
package wxw.mengyuan.demo.lombok;
import javax.validation.constraints.NotEmpty;
public class UserInfoEntity {
  @NotEmpty(message = "非null,字符串长度不能为0,集合、数组的元素个数不能为0")
  private String name;
  private Integer age;

}
@NotBlank
作用:仅适用于方法参数、实体类属性的值的Java类型为字符串时,要求值不能为null,剔除字符串两端的空格后长度不能为0

属性

message:错误信息

示例
package wxw.mengyuan.demo.lombok;
import javax.validation.constraints.NotBlank;
public class UserInfoEntity {
  @NotBlank(message = "非null、剔除两端的空格后长度不能为0")
  private String name;
  private Integer age;

}
@Length
作用:仅适用于方法参数、实体类属性的值的Java类型为字符串时,要求字符串的长度必须在指定范围内
属性
message:错误信息
min:字符串的最小长度
max:字符串的最大长度
示例
package wxw.mengyuan.demo.lombok;
import org.hibernate.validator.constraints.Length;
public class UserInfoEntity {
  @Length(min = 1, max = 10, message = "字符串长度必须为1-10之间")
  private String name;
  private Integer age;

}
@Size
作用:仅适用于方法参数、实体类属性的值的Java类型为字符串、集合、数组时,要求字符串长度、或元素个数必须在指定范围内
属性
message:错误信息
min:字符串长度的最小长度,集合、数组的最小元素个数
示例
package wxw.mengyuan.demo.lombok;
import javax.validation.constraints.Size;
public class UserInfoEntity {
  @Size(min = 1, max = 10, message = "字符串长度必须为1-10之间")
  private String name;
  private Integer age;

}
@Min
作用:仅适用于方法参数、实体类属性的值的Java为数值时,要求值的大小不能小于指定数值
属性
message:错误信息
value:允许的最小数值
示例
package wxw.mengyuan.demo.lombok;
import javax.validation.constraints.Min;
public class UserInfoEntity {
  private String name;
  @Min(value = 0, message = "年龄不能小于0")
  private Integer age;

}
@Max
作用:仅适用于方法参数、实体类属性的值的Java类型为数值时,要求值的大小不能大于指定数值
属性
message:错误信息
value:允许的最大数值
示例
package wxw.mengyuan.demo.lombok;
import javax.validation.constraints.Max;
public class UserInfoEntity {
  private String name;
  @Max(value = 150, message = "年龄不能大于150")
  private Integer age;

}
@Email
作用:仅适用于方法参数、实体类属性的值的Java类型为字符串时,要求该字符串必须符合邮箱格式
属性
message:错误信息
示例
package wxw.mengyuan.demo.lombok;
import javax.validation.constraints.Email;
public class UserInfoEntity {
  // 堆代码 duidaima.com
  private String name;
  private Integer age;
  @Email(message = "邮箱格式不正确")
  private String email;

}
@Pattern
作用:仅适用于方法参数、实体类属性的值的Java类型为字符串时,要求该字符串必须满足指定的正则表达式格式
属性
message:错误信息
regexp:正则表达式
示例
package wxw.mengyuan.demo.lombok;
import javax.validation.constraints.Pattern;
public class UserInfoEntity {
  @Pattern(regexp = "[a-zA-Z0-9_]+", message = "只能为大小写字母、数字、下划线的组合")
  private String name;
  private Integer age;

}

用户评论