Java實(shí)體類常用注解的用法
在 Java 開發(fā)中,實(shí)體類(Entity Class)是表示數(shù)據(jù)結(jié)構(gòu)的重要組成部分。為了方便地對(duì)實(shí)體類進(jìn)行操作和管理,我們經(jīng)常會(huì)使用一些注解來標(biāo)記實(shí)體類的屬性和方法。
本文將介紹一些常用的 Java 實(shí)體類注解,并解釋它們的作用和用法。
一、屬性賦值,構(gòu)造方法
引入依賴:
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.4</version> </dependency>
1、@Data
是 Lombok 提供的注解,用于簡(jiǎn)化 Java 類的編寫,自動(dòng)生成 Getter、Setter、equals、hashCode、toString 等方法。@Data
注解包含以下注解的功能:
@Getter
:自動(dòng)生成 Getter 方法。@Setter
:自動(dòng)生成 Setter 方法。@ToString
:自動(dòng)生成 toString 方法。@EqualsAndHashCode
:自動(dòng)生成 equals 和 hashCode 方法。
使用 @Data
注解可以減少重復(fù)的樣板代碼,提高代碼的簡(jiǎn)潔性和可讀性。例如:
@Data public class Person { private String name; private int age; }
上述代碼等效于手動(dòng)編寫了以下代碼:
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{" + "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(name, age); } }
可以看到,使用 @Data
注解可以大大簡(jiǎn)化類的編寫,減少了樣板代碼。
2、@NoArgsConstructor、@AllArgsConstructor
@NoArgsConstructor相當(dāng)于無參構(gòu)造方法、@AllArgsConstructor相當(dāng)于有參構(gòu)造方法
二、數(shù)據(jù)庫映射
以上是mybatis-plus常用實(shí)體注解
1、@TableName
表名注解,標(biāo)識(shí)實(shí)體類對(duì)應(yīng)的表
2、@TableId
主鍵注解,與@TableField不能同時(shí)使用
3、@TableField
字段注解(非主鍵)
使用:
@TableName("student") public class Student{ @TableId private String id; @TableField("stu_name") private String stuName; @TableField("stu_age") private Integer stuAge; @TableField("birth_date") private Date birthDate; }
三、屬性格式校驗(yàn)
1、@NotNull
被注釋的字段不能為空
2、@NotEmpty
被注釋的字符串必須非空
3、@Email
被注釋的元素必須是電子郵件地址
4、@Pattern
正則校驗(yàn),例如:
@Pattern(regexp="1\\d{10}",message="手機(jī)號(hào)格式錯(cuò)誤")
四、日期格式轉(zhuǎn)換
1、@DatetimeFormat
將String轉(zhuǎn)換成Date。
2、@JsonFormat(pattern=“yyyy-MM-dd”)
將Date轉(zhuǎn)換成指定時(shí)間格式的String。
@JsonFormat(pattern = "yyyy-MM-dd") private Date createTime;
3、@JsonFormat(pattern=“yyyy-MM-dd”,timezone=“GMT+8”)
會(huì)讓時(shí)間以0區(qū)時(shí)間顯示。
@JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8") private Date createTime;
五、類/屬性說明
1、@ApiModel
用于實(shí)體類,表示對(duì)類進(jìn)行說明,用于參數(shù)用實(shí)體類接收。
2、@ApiModelProperty
用于類中屬性,表示對(duì) 屬性的說明。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
springboot單文件下載和多文件壓縮zip下載的實(shí)現(xiàn)
這篇文章主要介紹了springboot單文件下載和多文件壓縮zip下載的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11Springboot swagger配置過程詳解(idea社區(qū)版2023.1.4+apache-maven-3
這篇文章主要介紹了Springboot-swagger配置(idea社區(qū)版2023.1.4+apache-maven-3.9.3-bin),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07關(guān)于Maven依賴沖突解決之exclusions
這篇文章主要介紹了關(guān)于Maven依賴沖突解決之exclusions用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12springboot整合jquery和bootstrap框架過程圖解
這篇文章主要介紹了springboot整合jquery和bootstrap框架過程圖解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12Spring Cloud 專題之Sleuth 服務(wù)跟蹤實(shí)現(xiàn)方法
這篇文章主要介紹了Spring Cloud 專題之Sleuth 服務(wù)跟蹤,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-08-08使用ClassFinal實(shí)現(xiàn)SpringBoot項(xiàng)目jar包加密的操作指南
在實(shí)際開發(fā)中,保護(hù)項(xiàng)目的安全性和保密性是至關(guān)重要的,針對(duì)于 Spring Boot 項(xiàng)目,我們需要將 JAR 包進(jìn)行加密從而有效地防止未經(jīng)授權(quán)的訪問和修改,本文將介紹如何使用ClassFinal在 Spring Boot 項(xiàng)目中實(shí)現(xiàn) JAR 包加密,需要的朋友可以參考下2024-06-06mybatis實(shí)現(xiàn)mapper代理模式的方式
本文向大家講解mybatis的mapper代理模式,以根據(jù)ide值查詢單條數(shù)據(jù)為例編寫xml文件,通過mapper代理的方式進(jìn)行講解增刪改查,分步驟給大家講解的很詳細(xì),對(duì)mybatis mapper代理模式相關(guān)知識(shí)感興趣的朋友一起看看吧2021-06-06