Mybatis plus 實體類常用注解


這里簡單記錄常用的注解,詳情需要去官網學習!!

 

1、@TableName 用於定義表名

 

2、@TableId 用於定義表的主鍵

屬性:

value 用於定義主鍵字段名
type 用於定義主鍵類型(主鍵策略 IdType)

主鍵策略:

IdType.AUTO          主鍵自增,系統分配,不需要手動輸入,但需要設置 mysql auto_increment
IdType.NONE          未設置主鍵
IdType.INPUT         需要自己輸入 主鍵值
IdType.ASSIGN_ID     系統分配 ID,用於數值型數據(Long,對應 mysql 中 BIGINT 類型)
IdType.ASSIGN_UUID   系統分配 UUID,用於字符串型數據(String,對應 mysql 中 varchar(32) 類型)

 

3、@TableField 用於定義表的非主鍵字段

屬性:

value 用於定義非主鍵字段名,用於別名匹配,假如java對象屬性和數據庫屬性不一樣
​
exist 用於指明是否為數據表的字段, true 表示是,false 為不是,假如某個java屬性在數據庫沒對應的字段則要標記為faslse

fill 用於指定字段填充策略(FieldFill,用的不多)
 字段填充策略:一般用於填充 創建時間、修改時間等字段
  FieldFill.DEFAULT         默認不填充
  FieldFill.INSERT          插入時填充
  FieldFill.UPDATE          更新時填充
  FieldFill.INSERT_UPDATE   插入、更新時填充。

 注意,在使用 fill 字段填充策略時,需要實現處理才能生效,如下:

/**
 * 將MybatisObjectHandler注入spring容器中,操作數據添加或者修改時,自動給
 * 指定字段添加數據
 */
@Component
public class MybatisObjectHandler implements MetaObjectHandler {

// birthday 指定的字段名稱,表示在insert場合可以操作該方法 @Override
public void insertFill(MetaObject metaObject) { setFieldValByName("birthday", new Date(),metaObject); } @Override public void updateFill(MetaObject metaObject) { setFieldValByName("updateTime",new Date(),metaObject); } }

 

4、案列

@Data
@TableName("Test3")
public class Test3 {

    /**
     * IdType.AUTO  主鍵自增,不需要手動輸入,但需要設置mysql auto_increment
     */
    @TableId(value = "id",type = IdType.AUTO)
    private Integer id;

    @TableField(value = "name")
    private String name;

    /**
     * 某個java屬性在數據庫沒對應的字段則要標記為faslse,默認是true
     */
    @TableField(exist = false)
    private String address;

    /**
     * 插入時填充, 添加日期
     */
    @TableField(value = "birthday", fill = FieldFill.INSERT )
    private Date birthday;

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM