`
bugyun
  • 浏览: 559386 次
社区版块
存档分类
最新评论

java 验证PO注解

    博客分类:
  • Java
 
阅读更多
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.hibernate.validator.constraints.Email;
import org.hibernate.validator.constraints.NotEmpty;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 *     以下注解参数,只针对PO的校验
 *
 *     参考:http://jinnianshilongnian.iteye.com/blog/1733708
 *
 *      @NotNull : Collection, Map 和 Array 对象不能是 null, 但可以是空集(size = 0)。
 *      @NotEmpty : Collection, Map 和 Array 对象不能是 null 并且相关对象的 size 大于 0。
 *      @NotBlank : 不是 null 且去除两端空白字符后的长度(trimmed length)大于 0。
 *
 *      @Null  被注释的元素必须为null
 *      @NotNull  被注释的元素不能为null
 *      @AssertTrue  被注释的元素必须为true
 *      @AssertFalse  被注释的元素必须为false
 *      @Min(value)  被注释的元素必须是一个数字,其值必须大于等于指定的最小值
 *      @Max(value)  被注释的元素必须是一个数字,其值必须小于等于指定的最大值
 *      @DecimalMin(value)  被注释的元素必须是一个数字,其值必须大于等于指定的最小值
 *      @DecimalMax(value)  被注释的元素必须是一个数字,其值必须小于等于指定的最大值
 *      @Size(max,min)  被注解的元素必须在制定的范围(数据类型:String, Collection, Map and arrays)
 *      @Range(min=, max=) 被注释的元素必须在合适的范围内 (数据:BigDecimal, BigInteger, String, byte, short, int, long and 原始类型的包装类 )
 *      @Digits(integer,fraction)  被注释的元素必须是一个数字,其值必须在可接受的范围内
 *      @Past  被注释的元素必须是一个过去的日期
 *      @Future  被注释的元素必须是一个将来的日期
 *      @Pattern(value) 被注释的元素必须符合指定的正则表达式。
 *      @Email 被注释的元素必须是电子邮件地址
 *      @Length 被注释的字符串的大小必须在指定的范围内
 *      @NotEmpty  被注释的字符串必须非空
 *      @Range  被注释的元素必须在合适的范围内
 *
 *      @Valid 任何非原子类型,指定递归验证关联的对象;如用户对象中有个地址对象属性,如果想在验证用户对象时一起验证地址对象的话,在地址对象上加@Valid注解即可级联验证
 *      eg:
 *          手机号校验:@Pattern(regexp = "^1[3|4|5|7|8][0-9]\\d{4,8}$")
 * </p>
 *
 *
 * @author beyond
 * @since 2019-05-07
 */
@ApiModel("用户模型-po")
@TableName("t_user_base")
public class UserBase implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "用户id", example = "1001")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    @Pattern(regexp = "^[a-zA-Z_]\\w{4,19}$", message = "用户名必须以字母下划线开头,可由字母数字下划线组成")
    @NotEmpty()
    @ApiModelProperty(value = "用户昵称", example = "张三")
    private String userName;

    @Range(max = 200)
    @NotNull()
    @ApiModelProperty(value = "年龄", example = "16")
    private Integer age;

    @Email
    @ApiModelProperty(value = "邮箱|登录帐号", example = "root@gmail.com")
    private String email;

    @Pattern(regexp = "^1[3|4|5|6|7|8][0-9]\\d{4,8}$", message = "手机号码输入不合法")
    @ApiModelProperty(value = "手机号码", example = "15261404040")
    private String mobile;

    @Size(min = 6, max = 8)
    @ApiModelProperty(value = "密码", example = "root")
    private String password;

    @ApiModelProperty(value = "创建时间", example = "2018-06-29 09:17:54")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT")
    private Date createTime;

    @ApiModelProperty(value = "更新时间", example = "2018-06-29 09:17:54")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT")
    private Date updateTime;

    @ApiModelProperty(value = "1|有效,0|无效", example = "0")
    private Integer status;

//    @Valid
//    @NotEmpty(message = "集合不能为空")
//    private List<UserBase> list ;

    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;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
}

 

分享到:
评论

相关推荐

    po与vo区别.doc

    在Java开发领域,尤其是涉及到Spring框架以及数据持久化时,我们常常会遇到“PO”(Plain Old Java Object)和“VO”(Value Object)这两个概念。它们都是Java对象,但各自有不同的用途和特点。理解它们的区别对于...

    用struts2 结合po,实现的登陆

    本项目利用Struts2.0框架,结合PO(Plain Old Java Object)、DAO(Data Access Object)模式以及数据库操作,实现了用户登录功能。以下是关于这些知识点的详细解释: 1. **Struts2.0**:Struts2是Apache软件基金会...

    java json 相关的所有jar包

    `Jackson-annotations`提供了注解,便于自定义序列化和反序列化规则。`Jackson-core`是基础模块,包含解析和生成JSON的基本功能。 2. **Gson** Google开发的Gson库能够将Java对象转换为JSON字符串,并将JSON字符串...

    ssm-base.zip_J2EE_funnye75_writer4po

    3. **MyBatis**:是一个轻量级的持久层框架,它允许开发者用简单的XML或注解来映射原生信息,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。MyBatis可以简化SQL操作,同时保持...

    selenium+Java+完整数据驱动模式.docx

    ### Selenium + Java + 完整数据驱动模式 #### 一、Selenium 数据驱动模式概述 在软件测试领域,特别是Web应用测试中,Selenium是一种广泛使用的自动化测试工具。结合Java编程语言,可以构建出功能强大且灵活的...

    Java反射在JVM的实现11

    连接阶段则包括验证、准备和解析步骤,确保类的正确性和初始化其静态变量;初始化阶段会执行类的静态初始化块。 反射的使用通常涉及以下几个核心API: 1. `Class`类:代表Java类的运行时信息,可以通过`Class.for...

    使用Hibernate逆向生成实体类的方法(注解和hbm.xml映射文件)

    - 运行测试程序,验证Hibernate是否能够正确读取映射信息并与数据库交互。 通过以上步骤,我们不仅能够利用Hibernate逆向生成实体类,还可以灵活地选择注解映射或hbm.xml映射的方式。这种方式极大地简化了开发过程...

    java开发代码规范

    - **输入验证**: 对所有输入数据进行验证,防止XSS攻击等。 #### 五、MySQL数据库 - **建表规约**: 设计合理的表结构,包括主键、索引等。 - **索引规约**: 合理使用索引提高查询效率。 - **SQL语句**: 编写高效的...

    自动化测试示例TestDemo完善最新版本

    它提供了一套简洁的API,使得开发者可以方便地编写和执行测试用例,验证代码的各个模块是否按照预期工作。JUnit支持注解、异常测试、测试套件等功能,使得测试过程更加结构化和高效。 HttpUnit则是一款轻量级的HTTP...

    JAVA开发手册.2020.pdf

    - **类名规范**: 类名应遵循`UpperCamelCase`风格,但特定类型如DO(Data Object)、BO(Business Object)、DTO(Data Transfer Object)、VO(View Object)、AO(Application Object)、PO(Persistence Object)...

    EasyJWeb开发者指南

    - **PO与WebForm**:PO(Plain Old Java Object)用于表示业务对象,WebForm则用于处理表单数据。 #### 四、验证 - **Annotation**:使用注解简化验证逻辑的定义。 - **EasyJWeb中的验证**:提供了内置的验证机制,...

    Spring boot+Mybatis整合实现增删改查(适合初学者入门必备也可以做脚手架开发)

    1、项目实现Spring boot+...8.Excel导入导出工具使用EasyPOI来完成:https://easypoi.mydoc.io/ ,想导出为Excel直接在PO中使用@Excel注解 9、还支持自定义样式的模板导出 10、包含了登录功能以及登录权限验证的拦截器

    java学习文档

    ### Java学习文档——Pafa4新特性指南 #### 背景 自2005年发布Pafa3以来,随着开发技术的日新月异,为了简化开发过程、提高开发效率以及提升系统的整体质量,出现了许多新技术。Spring框架也已发布了3.0版本,提供...

    Java学习笔记-个人整理的

    {1}Java基础}{17}{chapter.1} {1.1}基本语法}{17}{section.1.1} {1.2}数字表达方式}{17}{section.1.2} {1.3}补码}{19}{section.1.3} {1.3.1}总结}{23}{subsection.1.3.1} {1.4}数据类型}{23}{section.1.4} {...

Global site tag (gtag.js) - Google Analytics