欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

j2ee mybatis注解@Data,@TableName,@TableField使用方式

 更新時間:2024年04月17日 11:12:47   作者:大新軟件技術部  
這篇文章主要介紹了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;
}

自動生成的相關方法get()、 set()、 toString()等方法

3、其他相關注解

  • @Data:注在類上,提供類的get、set、equals、hashCode、toString等方法
  • @AllArgsConstructor:注在類上,提供類的全參構造
  • @NoArgsConstructor:注在類上,提供類的無參構造
  • @Setter:注在屬性上,提供 set 方法
  • @Getter:注在屬性上,提供 get 方法
  • @EqualsAndHashCode:注在類上,提供對應的 equals 和 hashCode 方法
  • @Log4j/@Slf4j:注在類上,提供對應的 Logger 對象,變量名為 log

二、注解@TableName、@TableField

@TableName(value = …)

當數(shù)據(jù)庫名與實體類名不一致或不符合駝峰命名時,需要在此注解指定表名(不加這個注解默認將實體類的小寫形式在db中尋找

@TableField 字段注解,該注解用于標識非主鍵的字段。將數(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 = …)

指定實體類的屬性為對應的主鍵,主要有以下幾種:

// 數(shù)據(jù)庫ID自增
IdType.AUTO

// 該類型為未設置主鍵類型(默認)
IdType.NONE 
/**
 * 用戶輸入ID
 * <p>該類型可以通過自己注冊自動填充插件進行填充</p>
 */
IdType.INPUT


/* 以下3種類型、只有當插入對象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)  // 默認為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屬性上添加

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

最新評論