mybatis-plus 实体注解@TableField、@ApiModel、@ApiModelProperty、@Valid

柔情只为你懂 2023-10-04 09:24 28阅读 0赞

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了。

  1. 例如:@TableField(.. , update="%s+1") 其中 %s 会填充为字段
  2. 输出 SQL 为:update set 字段=字段+1 where ...

如果给某个字段上@TableField注解里面写update=“now()”,最后使用mybatisplus自带的insert()方法向数据库插入数据时,这个字段插入到数据库中的值就为当前时间,

  1. 例如:@TableField(.. , update="now()") 使用数据库时间
  2. 输出 SQL 为:update set 字段=now() where ...

2、@ApiModel和@ApiModelProperty用法

2.1、@ApiModel

使用场景:在实体类上边使用,标记类时swagger的解析类。
概述:提供有关swagger模型的其它信息,类将在操作中用作类型时自动内省。
用法:
0b82e0e4e1217fed3126d7f3a6ae50f3.png

2.2、@ApiModelProperty

使用场景:使用在被 @ApiModel 注解的模型类的属性上。表示对model属性的说明或者数据操作更改 。
概述:添加和操作模型属性的数据。
用法:
cf2923b529b247e91f48733c2445a6a2.png

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
@Email 参数值是邮箱格式,也可以通过@Pattern自定义正则表达式来实现
@Past 参数必须是过去的日期
@Future 参数必须是未来的日期
@Max(value) 参数不能大于value的值
@Min(value) 参数不能小于value的值

3.2、参数校验示例

  1. @Data
  2. @TableName(value = "project")
  3. @ApiModel(value = "项目-实体")
  4. public class Project {
  5. @TableId(value = "id", type = IdType.AUTO)
  6. @ApiModelProperty(value = "id")
  7. private Long id;
  8. /**
  9. * 项目名称
  10. */
  11. @TableField(value = "project_name")
  12. @ApiModelProperty(value = "项目名称")
  13. @NotNull(message = "项目名称不能为空")
  14. @NotBlank(message = "项目名称不能为空")
  15. private String projectName;
  16. /**
  17. * 创建人
  18. */
  19. @TableField(value = "creator")
  20. @ApiModelProperty(value = "创建人姓名")
  21. @Size(max = 20, min = 2,message = "创建人姓名长度需要在2-20字符长度之间")
  22. private String creator;
  23. /**
  24. * 创建时间
  25. */
  26. @TableField(value = "create_time")
  27. @ApiModelProperty(value = "创建时间")
  28. @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  29. private Date createTime;
  30. /**
  31. * 更新时间
  32. */
  33. @TableField(value = "update_time")
  34. @ApiModelProperty(value = "更新时间")
  35. @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  36. private Date updateTime;
  37. /**
  38. * 描述信息
  39. */
  40. @TableField(value = "description")
  41. @ApiModelProperty(value = "描述信息")
  42. private String description;
  43. }

发表评论

表情:
评论列表 (有 0 条评论,28人围观)

还没有评论,来说两句吧...

相关阅读