其他網址
@TableName
其他網址
描述:表名註解
屬性 |
類型 |
必須指定 |
默認值 |
描述 |
value |
String |
否 |
"" |
表名。 若不指定,則默認爲駝峯轉下劃線。例:類名爲UserStudent,則對應表名爲user_student。 |
schema |
String |
否 |
"" |
schema |
keepGlobalPrefix |
boolean |
否 |
false |
是否保持使用全局的 tablePrefix 的值(如果設置了全局 tablePrefix 且自行設置了 value 的值) |
resultMap |
String |
否 |
"" |
xml 中 resultMap 的 id |
autoResultMap |
boolean |
否 |
false |
是否自動構建 resultMap 並使用(若設置 resultMap 則不進行 resultMap 的自動構建並注入)。 mp會自動構建一個ResultMap並注入到mybatis裏(一般用不上).下面講兩句: 因爲mp底層是mybatis,所以一些mybatis的常識你要知道,mp只是幫你注入了常用crud到mybatis裏 注入之前可以說是動態的(根據你entity的字段以及註解變化而變化),但是注入之後是靜態的(等於你寫在xml的東西) 而對於直接指定typeHandler,mybatis只支持你寫在2個地方: 1.定義在resultMap裏,只作用於select查詢的返回結果封裝 |
value
若數據庫中所有表都有表名前綴,比如想讓 t_user_info 表對應 UserInfo 實體類,可以添加如下全局配置設置表名前綴:
mybatis-plus.global-config.db-config.table-prefix=t_
若所有表名都不是下劃線命名(但能跟類名對應上),比如想讓 userinfo 表對應 UserInfo 實體類,可以添加如下全局配置,表示數據庫表不使用下劃線命名:
mybatis-plus.global-config.db-config.table-underline=false
@TableId
描述:主鍵註解
屬性 |
類型 |
必須指定 |
默認值 |
描述 |
value |
String |
否 |
"" |
主鍵字段名 |
type |
Enum |
否 |
IdType.NONE |
主鍵類型 |
值 |
描述 |
AUTO |
數據庫ID自增 |
NONE |
無狀態,該類型爲未設置主鍵類型(註解裏等於跟隨全局,全局裏約等於 INPUT) |
INPUT |
insert前自行set主鍵值 |
ASSIGN_ID |
分配ID(主鍵類型爲Number(Long和Integer)或String)(since 3.3.0),使用接口IdentifierGenerator的方法nextId(默認實現類爲DefaultIdentifierGenerator雪花算法) |
ASSIGN_UUID |
分配UUID,主鍵類型爲String(since 3.3.0),使用接口IdentifierGenerator的方法nextUUID(默認default方法) |
|
分佈式全局唯一ID 長整型類型(please use ASSIGN_ID) |
|
32位UUID字符串(please use ASSIGN_UUID) |
|
分佈式全局唯一ID 字符串類型(please use ASSIGN_ID) |
@TableField
屬性 |
類型 |
必須指定 |
默認值 |
描述 |
value |
String |
否 |
"" |
數據庫字段名 |
el |
String |
否 |
"" |
映射爲原生 #{ ... } 邏輯,相當於寫在 xml 裏的 #{ ... } 部分 |
exist |
boolean |
否 |
true |
是否爲數據庫表字段 |
condition |
String |
否 |
"" |
字段 where 實體查詢比較條件,有值設置則按設置的值爲準,沒有則爲默認全局的 %s=#{%s},參考 |
update |
String |
否 |
"" |
字段 update set 部分注入, 例如:update="%s+1":表示更新時會set version=version+1(該屬性優先級高於 el 屬性) |
insertStrategy |
Enum |
N |
DEFAULT |
舉例:NOT_NULL: insert into table_a(<if test="columnProperty != null">column</if>) values (<if test="columnProperty != null">#{columnProperty}</if>) |
updateStrategy |
Enum |
N |
DEFAULT |
舉例:IGNORED: update table_a set column=#{columnProperty} |
whereStrategy |
Enum |
N |
DEFAULT |
舉例:NOT_EMPTY: where <if test="columnProperty != null and columnProperty!=''">column=#{columnProperty}</if> |
fill |
Enum |
否 |
FieldFill.DEFAULT |
字段自動填充策略 |
select |
boolean |
否 |
true |
是否進行 select 查詢 |
keepGlobalFormat |
boolean |
否 |
false |
是否保持使用全局的 format 進行處理 |
jdbcType |
JdbcType |
否 |
JdbcType.UNDEFINED |
JDBC類型 (該默認值不代表會按照該值生效)。 若不配合@TableName#autoResultMap = true一起使用,只生效於 update 的sql。 |
typeHandler |
Class<? extends TypeHandler> |
否 |
UnknownTyp eHandler.class |
類型處理器 (該默認值不代表會按照該值生效)。 若不配合@TableName#autoResultMap = true一起使用,只生效於 update 的sql。 如果你的字段類型和set進去的類型爲equals關係,則只需要讓你的typeHandler讓Mybatis加載到即可,不需要使用註解。 |
numericScale |
String |
否 |
"" |
指定小數點後保留的位數。 numericScale只生效於 update 的sql |
值 |
描述 |
IGNORED |
忽略判斷 |
NOT_NULL |
非NULL判斷 |
NOT_EMPTY |
非空判斷(只對字符串類型字段,其他類型字段依然爲非NULL判斷) |
DEFAULT |
追隨全局配置 |
值 |
描述 |
DEFAULT |
默認不處理 |
INSERT |
插入時填充字段 |
UPDATE |
更新時填充字段 |
INSERT_UPDATE |
插入和更新時填充字段 |
@Version
描述:樂觀鎖註解、標記 @Verison 在字段上
@EnumValue
描述:通枚舉類註解(註解在枚舉字段上)
@TableLogic
描述:表字段邏輯處理註解(邏輯刪除)
屬性 |
類型 |
必須指定 |
默認值 |
描述 |
value |
String |
否 |
"" |
邏輯未刪除值 |
delval |
String |
否 |
"" |
邏輯刪除值 |
@SqlParser
描述:租戶註解,支持method上以及mapper接口上
屬性 |
類型 |
必須指定 |
默認值 |
描述 |
filter |
boolean |
否 |
false |
true: 表示過濾SQL解析,即不會進入ISqlParser解析鏈,否則會進解析鏈並追加例如tenant_id等條件 |
@KeySequence
描述:序列主鍵策略 oracle
屬性:value、resultMap
屬性 |
類型 |
必須指定 |
默認值 |
描述 |
value |
String |
否 |
"" |
序列名 |
clazz |
Class |
否 |
Long.class |
id的類型, 可以指定String.class,這樣返回的Sequence值是字符串"1" |