MyBatis-Plus中提供的各種注解詳細(xì)說明
MyBatis-Plus注解
下面對(duì)MyBatis-Plus提供的注解進(jìn)行整理。
@TableName
用于指定表名,作用在實(shí)體類上面。
常用的屬性:
value —— 表名
例子:
@TableName("tb_user") public class UserEntity { ... }
@TableId
用于指定表的主鍵名。
常用屬性:
- value —— 主鍵名
- type —— 主鍵類型
其中,主鍵類型type默認(rèn)值是IdType.NONE,取值有以下幾種:
- IdType.AUTO —— 主鍵自增,系統(tǒng)分配,不需要手動(dòng)輸入。
- IdType.NONE —— 未設(shè)置主鍵。
- IdType.INPUT —— 需要自己設(shè)置主鍵值。
- IdType.ASSIGN_ID —— 當(dāng)主鍵類型是Long、Integer、String時(shí),系統(tǒng)調(diào)用IdentifierGenerator.nextId()自動(dòng)分配,默認(rèn)是雪花算法。
- IdType.ASSIGN_UUID —— 分配UUID,主鍵類型為String,系統(tǒng)調(diào)用IdentifierGenerator.nextUUID()方法。
例子:
@TableId(value = "user_id", type = IdType.ASSIGN_ID) private Long id;
@TableField
用于指定表的非主鍵字段名。
常用屬性:
- value —— 指定非主鍵字段名。
- exist —— 用于指明是否是數(shù)據(jù)庫表中的字段,true是,false不是。
- fill —— 用于指定字段填充策略。
字段填充策略(一般用于填充創(chuàng)建時(shí)間、修改時(shí)間等字段)如下:
- FieldFill.DEFAULT —— 默認(rèn)不填充。
- FieldFill.INSERT —— 插入時(shí)填充。
- FieldFill.UPDATE —— 更新時(shí)填充。
- FieldFill.INSERT_UPDATE —— 插入、更新時(shí)填充。
注意:需要實(shí)現(xiàn)自定義的填充器,字段填充策略才會(huì)生效。
例子:
@TableField(value = "create_time", fill = FieldFill.INSERT) private Date createTime;
@Version
用于標(biāo)記實(shí)現(xiàn)樂觀鎖的表字段。
例子:
@Version private Integer version;
@EnumValue
只能標(biāo)記在枚舉類的字段上,表示數(shù)據(jù)庫填入的值是枚舉類中的哪個(gè)字段的值。
例子:
@Data @TableName("tb_student") public class Student { private Integer id; private String name; // 在數(shù)據(jù)庫中,grade字段的類型是int,所以需要在GradeEnum中使用@EnumValue注解取值的字段 private GradeEnum grade; } public enum GradeEnum { PRIMARY(1, "小學(xué)"), SECONDORY(2, "中學(xué)"), HIGH(3, "高中"); @EnumValue private int code; private String name; ... }
@TableLogic
用于標(biāo)記表示邏輯刪除的字段。
使用了這個(gè)注解,在調(diào)用刪除方法的時(shí)候并不會(huì)真的刪除數(shù)據(jù),而是更新數(shù)據(jù),設(shè)置邏輯刪除字段的值。
常用屬性:
- value —— 指定邏輯未刪除時(shí)候的值。
- delval —— 指定邏輯刪除時(shí)候的值。
例子:
@TableField("delete_flag") @TableLogic(value = "0", delval = "-1") private Integer deleteFlag;
到此這篇關(guān)于MyBatis-Plus中提供的各種注解詳細(xì)說明的文章就介紹到這了,更多相關(guān)MyBatis-Plus注解內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- mybatis-plus中的常用注解
- Mybatis-Plus中使用@DS注解動(dòng)態(tài)選擇數(shù)據(jù)源的源碼解讀
- mybatis-plus常用注解@TableId和@TableField的用法
- Mybatis-Plus實(shí)體類注解方法與mapper層和service層的CRUD方法
- MyBatis-Plus如何通過注解使用TypeHandler
- springboot整合mybatis-plus基于注解實(shí)現(xiàn)一對(duì)一(一對(duì)多)查詢功能
- Springboot+mybatis-plus+注解實(shí)現(xiàn)數(shù)據(jù)權(quán)限隔離
相關(guān)文章
SpringCloud融入Python的實(shí)現(xiàn)
這篇文章主要介紹了SpringCloud融入Python的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12解決javaBean規(guī)范導(dǎo)致json傳參首字母大寫將永遠(yuǎn)獲取不到問題
這篇文章主要介紹了解決javaBean規(guī)范導(dǎo)致json傳參首字母大寫將永遠(yuǎn)獲取不到問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07關(guān)于Synchronized和ReentranLock的區(qū)別及說明
文章介紹了Java中的`synchronized`關(guān)鍵字和`ReentrantLock`類,兩者都可以用于解決多線程同步問題,但`ReentrantLock`提供了更多的功能和靈活性2024-12-12關(guān)于maven pom文件配置加載lib下的jar包
在項(xiàng)目中引用放置在lib文件夾中的第三方j(luò)ar包需要通過POM文件進(jìn)行特定配置,雖然將依賴放置在公司的Maven私服是更好的做法,但如果遇到部署問題,可以利用maven-jar-plugin進(jìn)行配置,Spring Boot項(xiàng)目可以通過特定設(shè)置來實(shí)現(xiàn)2024-09-09