Mybatis Plus使用@TableId的示例詳解
Mybatis Plus使用@TableId
1. @TableId
1.1 @TableId 可選類型
不添加注解時,默認(rèn)使用ID_WORKER(3)
public enum IdType { /** * 數(shù)據(jù)庫ID自增 */ AUTO(0), /** * 該類型為未設(shè)置主鍵類型(將跟隨全局) */ NONE(1), /** * 用戶輸入ID * <p>該類型可以通過自己注冊自動填充插件進(jìn)行填充</p> */ INPUT(2), /* 以下3種類型、只有當(dāng)插入對象ID 為空,才自動填充。 */ /** * 全局唯一ID (idWorker) */ ID_WORKER(3), /** * 全局唯一ID (UUID) */ UUID(4), /** * 字符串全局唯一ID (idWorker 的字符串表示) */ ID_WORKER_STR(5); }
1.2 @TableId(value = “id”,type= IdType.AUTO)
使用條件:
id 類型可以是Interger/Long;
數(shù)據(jù)庫主鍵id,mysql必須設(shè)置自增主鍵,postgreSQL必須設(shè)置自增序列(例如:主鍵類型 serial4),才能夠使用此注解。
1.3 @TableId(value = “id”,type= IdType.ID_WORKER)
使用條件:
id 類型必須是Long;
因為ID_WORKER 生成的snowflakeId 是19位的全局id。
2. 非主鍵字段添加@TableId
如果一張表只是一個關(guān)聯(lián)表,非主表,只保存了主表的id。但任然需要通過這個字段對關(guān)聯(lián)表進(jìn)行CRUD。
此時只需要在關(guān)聯(lián)表的該字段上加@TableId ,即可使用 mybatis-plus mapper自帶的方法;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.util.Date; @Data @TableName("fbr_basic_info") public class FBRBasicInfoEntity { @TableId private Integer fbrInfoId; private String fbrType; private String fbrTypeCode; }
使用示例
查詢
FBRBasicInfoEntity basicInfoEntity = fbrBasicInfoMapper.selectById(fbrInfoId);
新增
FBRBasicInfoEntity basicInfoEntity = FBRAssemble.trans(basicInfoVO); fbrBasicInfoMapper.insert(basicInfoEntity);
修改
fbrBasicInfoMapper.updateById(basicInfoEntity);
親測可用。
補(bǔ)充:Mybatis-Plus中的@TableId
Mybatis-Plus中的@TableId
簡介
在 MyBatis Plus
中,@TableId
注解是用于標(biāo)記實體類中的主鍵字段。它可以更方便地處理主鍵相關(guān)的操作,如自動填充主鍵值或識別主鍵字段。
用法
public class User { @TableId(value = "user_id", type = IdType.AUTO) private Long userId; ... }
用戶表
user
,其中主鍵字段名為user_id
,這個主鍵是數(shù)據(jù)庫自增
value
:指定數(shù)據(jù)庫表中的主鍵字段名稱。如果實體類的屬性名與數(shù)據(jù)庫表中的主鍵字段名相同,則可以省略此屬性。type
:指定主鍵生成策略。
主鍵生成策略
IdType.AUTO
:表示主鍵自增,適用于數(shù)據(jù)庫支持的自增主鍵,如MySQL
的AUTO_INCREMENT
。IdType.ASSIGN_ID
:使用雪花算法(Snowflake Algorithm
)生成主鍵。IdType.ASSIGN_UUID
:生成一個不包含中劃線的UUID
作為主鍵。IdType.INPUT
:表示主鍵值需要手動輸入或設(shè)置。
結(jié)束
到此這篇關(guān)于Mybatis Plus使用@TableId的文章就介紹到這了,更多相關(guān)Mybatis Plus使用@TableId內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java 利用反射機(jī)制,獲取實體所有屬性和方法,并對屬性賦值
這篇文章主要介紹了 java 利用反射機(jī)制,獲取實體所有屬性和方法,并對屬性賦值的相關(guān)資料,需要的朋友可以參考下2017-01-01springboot整合nacos的入門Demo及Nacos安裝部署
Nacos?提供了一組簡單易用的特性集,幫助您快速實現(xiàn)動態(tài)服務(wù)發(fā)現(xiàn)、服務(wù)配置、服務(wù)元數(shù)據(jù)及流量管理,Nacos?致力于幫助您發(fā)現(xiàn)、配置和管理微服務(wù),這篇文章主要介紹了springboot整合nacos的入門Demo,需要的朋友可以參考下2024-01-01Java中IO流之字符流與字節(jié)流的轉(zhuǎn)換方式
在Java中,字節(jié)流與字符流是處理數(shù)據(jù)的兩種方式,字節(jié)流適用于處理各種數(shù)據(jù)類型,如圖片、音頻等非文本數(shù)據(jù),而字符流專門用于處理文本數(shù)據(jù),Java提供了InputStreamReader和OutputStreamWriter這兩個類來實現(xiàn)字節(jié)流向字符流的轉(zhuǎn)換2024-10-10如何獲取MyBatis Plus執(zhí)行的完整的SQL語句
這篇文章主要介紹了如何獲取MyBatis Plus執(zhí)行的完整的SQL語句問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-07-07