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; } }
相关推荐
在Java开发领域,尤其是涉及到Spring框架以及数据持久化时,我们常常会遇到“PO”(Plain Old Java Object)和“VO”(Value Object)这两个概念。它们都是Java对象,但各自有不同的用途和特点。理解它们的区别对于...
本项目利用Struts2.0框架,结合PO(Plain Old Java Object)、DAO(Data Access Object)模式以及数据库操作,实现了用户登录功能。以下是关于这些知识点的详细解释: 1. **Struts2.0**:Struts2是Apache软件基金会...
`Jackson-annotations`提供了注解,便于自定义序列化和反序列化规则。`Jackson-core`是基础模块,包含解析和生成JSON的基本功能。 2. **Gson** Google开发的Gson库能够将Java对象转换为JSON字符串,并将JSON字符串...
3. **MyBatis**:是一个轻量级的持久层框架,它允许开发者用简单的XML或注解来映射原生信息,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。MyBatis可以简化SQL操作,同时保持...
### Selenium + Java + 完整数据驱动模式 #### 一、Selenium 数据驱动模式概述 在软件测试领域,特别是Web应用测试中,Selenium是一种广泛使用的自动化测试工具。结合Java编程语言,可以构建出功能强大且灵活的...
连接阶段则包括验证、准备和解析步骤,确保类的正确性和初始化其静态变量;初始化阶段会执行类的静态初始化块。 反射的使用通常涉及以下几个核心API: 1. `Class`类:代表Java类的运行时信息,可以通过`Class.for...
- 运行测试程序,验证Hibernate是否能够正确读取映射信息并与数据库交互。 通过以上步骤,我们不仅能够利用Hibernate逆向生成实体类,还可以灵活地选择注解映射或hbm.xml映射的方式。这种方式极大地简化了开发过程...
- **输入验证**: 对所有输入数据进行验证,防止XSS攻击等。 #### 五、MySQL数据库 - **建表规约**: 设计合理的表结构,包括主键、索引等。 - **索引规约**: 合理使用索引提高查询效率。 - **SQL语句**: 编写高效的...
它提供了一套简洁的API,使得开发者可以方便地编写和执行测试用例,验证代码的各个模块是否按照预期工作。JUnit支持注解、异常测试、测试套件等功能,使得测试过程更加结构化和高效。 HttpUnit则是一款轻量级的HTTP...
- **类名规范**: 类名应遵循`UpperCamelCase`风格,但特定类型如DO(Data Object)、BO(Business Object)、DTO(Data Transfer Object)、VO(View Object)、AO(Application Object)、PO(Persistence Object)...
- **PO与WebForm**:PO(Plain Old Java Object)用于表示业务对象,WebForm则用于处理表单数据。 #### 四、验证 - **Annotation**:使用注解简化验证逻辑的定义。 - **EasyJWeb中的验证**:提供了内置的验证机制,...
1、项目实现Spring boot+...8.Excel导入导出工具使用EasyPOI来完成:https://easypoi.mydoc.io/ ,想导出为Excel直接在PO中使用@Excel注解 9、还支持自定义样式的模板导出 10、包含了登录功能以及登录权限验证的拦截器
### Java学习文档——Pafa4新特性指南 #### 背景 自2005年发布Pafa3以来,随着开发技术的日新月异,为了简化开发过程、提高开发效率以及提升系统的整体质量,出现了许多新技术。Spring框架也已发布了3.0版本,提供...
{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} {...