Java实体类常用注解的用法
目录
- 一、属性赋值,构造方法
- 1、@Data
- 2、@NoAphprgsConstructor、@AllArgsConstructor
- 二、数据库映射
- 1、@TableName
- 2、@TableId
- 3、@TableField
- 三、属性格式校验
- 1、@NotNull
- 2、@NotEmpty
- 3、@Email
- 4、@Pattern
- 四、日期格式转换
- 1、@Date编程timeFormat
- 2、@jsonFormat(pattern=“yyyy-MM-dd”)
- 3、@JsonFormat(pattern=“yyyy-MM-dd”,timezone=“GMT+8”)
- 五、类/属性说明
- 1、@ApiModel
- 2、@ApiModelProperty
- 总结
在 Java 开发中,实体类(Entity Class)是表示数据结构的重要组成部分。为了方便地对实体类进行操作和管理,我们经常会使用一些注解来标记实体类的属性和方法。
本文将介绍一些常用的 Java 实体类注解,并解释它们的作用和用法。
一、属性赋值,构造方法
引入依赖:
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.4</version> </dependency>
1、@Data
是 Lombok 提供的注解,用于简化 Java 类的编写,自动生成 Getter、Setter、equals、hashCode、toString 等方法。@Data
注解包含以下注解的功能:
@Getter
:自动生成 Getter 方法。@Setter
:自动生成 Setter 方法。@ToString
:自动生成 toString 方法。@EqualsAndHashCode
:自动生成 equals 和 hashCode 方法。
使用 @Data
注解可以减少重复的样板代码,提高代码的简洁性和可读性。例如:
@Data public class Person { private String name; private int age; }
上述代码等效于手动编写了以下代码:
public class Person { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Person{" + http://www.devze.com"name='" + name + '\'' + ", age=" + age + '}'; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Person person = (Person) o; return age == person.age && Objects.equals(name, person.name); } @Override public int hashCode() { return Objects.hash(na编程客栈me, age); } }
可以看到,使用 @Data
注解可以大大简化类的编写,减少了样板代码。
2、@NoArgsConstructor、@AllArgsConstructor
@NoArgsConstructor相当于无参构造方法、@AllArgsConstructor相当于有参构造方法
二、数据库映射
以上是myBATis-plus常用实体注解
1、@TableName
表名注解,标识实体类对应的表
2、@TableId
主键注解,与@TableField不能同时使用
3、@TableField
字段注解(非主键)
使用:
@TableName("student") public class Student{ @TableId private String id; @TableField("stu_name") private String stuNamOPTjaMYe; @TableField("stu_age") private Integer stuAge; @TableField("birth_date") private Date birthDate; }
三、属性格式校验
1、@NotNull
被注释的字段不能为空
2、@NotEmpty
被注释的字符串必须非空
3、@Email
被注释的元素必须是电子邮件地址
4、@Pattern
正则校验,例如:
@Pattern(regexp="1\\d{10}",message="手机号格式错误")
四、日期格式转换
1、@DatetimeFormat
将String转换成Date。
2、@JsonFormat(pattern=“yyyy-MM-dd”)
将Date转换成指定时间格式的String。
@JsonFormat(pattern = "yyyy-MM-dd") private Date createTime;
3、@JsonFormat(pattern=“yyyy-MM-dd”,timezone=“GMT+8”)
会让时间以0区时间显示。
@JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8") private Date createTime;
五、类/属性说明
1、@ApiModel
用于实体类,表示对类进行说明,用于参数用实体类接收。
2、@ApiModelProperty
用于类中属性,表示对 属性的说明。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。
精彩评论