j2ee mybatis注解@Data,@TableName,@TableField使用方式
一、@Data
@Data注解的主要作用是提高代碼的簡潔,使用這個注解可以省去實體類中大量的get()、 set()、 toString()等方法。
1、引入依賴
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.4</version>
<scope>provided</scope>
</dependency>可以在IDEA編譯器中添加lombok插件,F(xiàn)ile -> Setting -> Plugins -> 搜索lombok
2、添加注解
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Person {
private String name;
private String address;
private Integer age;
private String hobbit;
private String phone;
}自動生成的相關(guān)方法get()、 set()、 toString()等方法
3、其他相關(guān)注解
@Data:注在類上,提供類的get、set、equals、hashCode、toString等方法@AllArgsConstructor:注在類上,提供類的全參構(gòu)造@NoArgsConstructor:注在類上,提供類的無參構(gòu)造@Setter:注在屬性上,提供 set 方法@Getter:注在屬性上,提供 get 方法@EqualsAndHashCode:注在類上,提供對應(yīng)的 equals 和 hashCode 方法@Log4j/@Slf4j:注在類上,提供對應(yīng)的 Logger 對象,變量名為 log
二、注解@TableName、@TableField
@TableName(value = …)
當(dāng)數(shù)據(jù)庫名與實體類名不一致或不符合駝峰命名時,需要在此注解指定表名(不加這個注解默認(rèn)將實體類的小寫形式在db中尋找)
@TableField 字段注解,該注解用于標(biāo)識非主鍵的字段。將數(shù)據(jù)庫列與 JavaBean 中的屬性進行映射
@TableName(value = "t_dish")
public class Dish implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "dish_id", type = IdType.AUTO)
private Long id;
@TableField("name")
//菜品名稱
private String name;
}@TableId(type = …)
指定實體類的屬性為對應(yīng)的主鍵,主要有以下幾種:
// 數(shù)據(jù)庫ID自增 IdType.AUTO // 該類型為未設(shè)置主鍵類型(默認(rèn)) IdType.NONE /** * 用戶輸入ID * <p>該類型可以通過自己注冊自動填充插件進行填充</p> */ IdType.INPUT /* 以下3種類型、只有當(dāng)插入對象ID 為空,才自動填充。 */ //1.全局唯一ID (idWorker) IdType.ID_WORKER //2.全局唯一ID (UUID) IdType.UUID //3.字符串全局唯一ID (idWorker 的字符串表示) IdType.ID_WORKER_STR
@TableField注解
1、 主要用來解決實體類的字段名與數(shù)據(jù)庫中的字段名不匹配的問題(數(shù)據(jù)庫user_addr,字段useraddr未駝峰)
2、 實體類中的屬性字段在表中不存在的問題
// 用來解決數(shù)據(jù)庫中的字段和實體類的字段不匹配問題 @TableField(value = "age") // 用來解決實體類中有的屬性但是數(shù)據(jù)表中沒有的字段 @TableField(exist = false) // 默認(rèn)為true
三、MybatisPlus中@TableField注解的使用
字段填充策略 FieldFill
/**
* 創(chuàng)建時間
*/
@TableField(fill = FieldFill.INSERT)
private Date gmtCreat;
/**
* 修改人
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
private Long modifierId;對添加了注解@TableField(fill = FieldFill.INSERT_UPDATE)的字段在進行插入(insert)和更新(update)時進行自動填充。
(解釋:后面會寫配置自動填充的配置類,該配置類的作用用于配置自動填充的值)。
@TableField(exist=false) private String remark;
@TableField(exist=false)的作用
比如在實體類中有一個屬性為remark,但是在數(shù)據(jù)庫中沒有這個字段,但是在執(zhí)行插入操作時給實體類的remark屬性賦值了,那么可以通過在實體類的remark屬性上添加
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot結(jié)合Vue實現(xiàn)Python在線調(diào)試器
這篇文章主要為大家詳細(xì)介紹了SpringBoot如何結(jié)合Vue實現(xiàn)Python在線調(diào)試器,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2026-01-01
JAVA中StringBuffer與String的區(qū)別解析
這篇文章主要介紹了JAVA中StringBuffer與String的區(qū)別解析,需要的朋友可以參考下2014-02-02
SpringBoot沒有讀取到application.yml問題及解決
這篇文章主要介紹了SpringBoot沒有讀取到application.yml問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12
Java實現(xiàn)批量轉(zhuǎn)換PPT為PDF
在日常工作中,PowerPoint?演示文稿因其強大的表現(xiàn)力而廣泛應(yīng)用,而為了方便共享,安全分發(fā),或確保打印格式的一致性,我們常常需要將?PPT?文件轉(zhuǎn)換為更通用的?PDF?格式,下面我們就來看看如何使用Java實現(xiàn)這一功能吧2025-06-06
Mybatis的類型轉(zhuǎn)換接口TypeHandler
這篇文章主要介紹了Mybatis的類型轉(zhuǎn)換接口TypeHandler,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下2022-08-08

