1、@TableField注解的使用
com.baomidou.mybatisplus.annotations.TableField
值 | 描述 |
---|---|
value | 字段值(驼峰命名方式,该值可无)。如果已开启驼峰映射,则不必在@TableField注解里面写value属性了。 |
update | 预处理 set 字段自定义注入 |
condition | 预处理 WHERE 实体条件自定义运算规则 |
el | 详看注释说明 |
exist | 是否为数据库表字段( 默认 true 存在,false 不存在 ) |
strategy | 字段验证 ( 默认 非 null 判断,查看 com.baomidou.mybatisplus.enums.FieldStrategy ) |
fill | 字段填充标记 ( FieldFill, 配合自动填充使用 ) |
1.1、属性 update :预处理 set 字段自定义注入
比如我们使用mybatisplus自带的insert()方法向数据库插入数据时,假设我们给age字段赋值为1,但是我们在age字段上的@TableField注解里面加了update="%s+1",那么真真插入到数据库的值就是age=2,而不是age+1了。
例如:@TableField(.. , update="%s+1") 其中 %s 会填充为字段
输出 SQL 为:update 表 set 字段=字段+1 where ...
如果给某个字段上@TableField注解里面写update=“now()”,最后使用mybatisplus自带的insert()方法向数据库插入数据时,这个字段插入到数据库中的值就为当前时间,
例如:@TableField(.. , update="now()") 使用数据库时间
输出 SQL 为:update 表 set 字段=now() where ...
2、@ApiModel和@ApiModelProperty用法
2.1、@ApiModel
使用场景:在实体类上边使用,标记类时swagger的解析类。
概述:提供有关swagger模型的其它信息,类将在操作中用作类型时自动内省。
用法:
2.2、@ApiModelProperty
使用场景:使用在被 @ApiModel 注解的模型类的属性上。表示对model属性的说明或者数据操作更改 。
概述:添加和操作模型属性的数据。
用法:
3、mybatis-plus整合@Valid参数校验
3.1、 @Valid 注解类型的使用
注解 | 作用 |
---|---|
@NotNull | 参数不能为null |
@NotBlank | 参数值不能为null,且去除首尾空格后长度不为0,多于用字符串 |
@NotEmpty | 参数不为null且不为空,字符串长度不为0、集合大小不为0 |
@Size(max,min) | 参数字符长度必须在min到max之间 |
@Pattern(value) | 参数必须符合指定的正则表达式 |
@Null | 参数只能为null |
参数值是邮箱格式,也可以通过@Pattern自定义正则表达式来实现 | |
@Past | 参数必须是过去的日期 |
@Future | 参数必须是未来的日期 |
@Max(value) | 参数不能大于value的值 |
@Min(value) | 参数不能小于value的值 |
3.2、参数校验示例
@Data
@TableName(value = "project")
@ApiModel(value = "项目-实体")
public class Project {
@TableId(value = "id", type = IdType.AUTO)
@ApiModelProperty(value = "id")
private Long id;
/**
* 项目名称
*/
@TableField(value = "project_name")
@ApiModelProperty(value = "项目名称")
@NotNull(message = "项目名称不能为空")
@NotBlank(message = "项目名称不能为空")
private String projectName;
/**
* 创建人
*/
@TableField(value = "creator")
@ApiModelProperty(value = "创建人姓名")
@Size(max = 20, min = 2,message = "创建人姓名长度需要在2-20字符长度之间")
private String creator;
/**
* 创建时间
*/
@TableField(value = "create_time")
@ApiModelProperty(value = "创建时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
/**
* 更新时间
*/
@TableField(value = "update_time")
@ApiModelProperty(value = "更新时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
/**
* 描述信息
*/
@TableField(value = "description")
@ApiModelProperty(value = "描述信息")
private String description;
}