文章目錄:
1.MyBatis-Plus註解
2.準備實體類和表結構
3.Mapper增刪改查
4.邏輯刪除
5.樂觀鎖插件
6.其他
7.代碼生成器
8.配置類
官方文檔:https://mp.baomidou.com/
測試代碼:https://github.com/earnext/test-mybatisplus
@TableName
屬性 |
類型 |
必須指定 |
默認值 |
描述 |
value |
String |
否 |
“” |
表名 |
schema |
String |
否 |
“” |
schema(@since 3.1.1) |
keepGlobalPrefix |
boolean |
否 |
false |
是否保持使用全局的 tablePrefix 的值(如果設置了全局 tablePrefix 且自行設置了 value 的值) |
resultMap |
String |
否 |
“” |
xml 中 resultMap 的 id |
autoResultMap |
boolean |
否 |
false |
是否自動構建 resultMap 並使用(如果設置 resultMap 則不會進行 resultMap 的自動構建並注入 |
@TableId
屬性 |
類型 |
必須指定 |
默認值 |
描述 |
value |
String |
否 |
“” |
主鍵字段名 |
type |
Enum |
否 |
IdType.NONE |
主鍵類型 |
IdType
值 |
描述 |
AUTO |
數據庫自增 |
INPUT |
自行輸入 |
ID_WORKER |
分佈式全局唯一ID 長整型類型 |
UUID |
32位UUID字符串 |
NONE |
無狀態 |
ID_WORKER_STR |
分佈式全局唯一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 屬性) |
strategy |
Enum |
否 |
FieldStrategy.DEFAULT |
字段驗證策略 3.1.2+使用下面3個替代 |
insertStrategy |
Enum |
N |
DEFAULT |
舉例:NOT_NULL: insert into table_a(column) values (#{columnProperty}) |
updateStrategy |
Enum |
N |
DEFAULT |
舉例:IGNORED: update table_a set column=#{columnProperty} |
whereStrategy |
Enum |
N |
DEFAULT |
舉例:NOT_EMPTY: where column=#{columnProperty} |
fill |
Enum |
否 |
FieldFill.DEFAULT |
字段自動填充策略 |
select |
boolean |
否 |
true |
是否進行 select 查詢 |
keepGlobalFormat |
boolean |
否 |
false |
是否保持使用全局的 format 進行處理 |
FieldFill
值 |
描述 |
DEFAULT |
默認不處理 |
INSERT |
插入時填充字段 |
UPDATE |
更新時填充字段 |
INSERT_UPDATE |
插入和更新時填充字段 |
@Version
- 描述:樂觀鎖註解、標記
@Verison
在字段上
@EnumValue
@TableLogic
屬性 |
類型 |
必須指定 |
默認值 |
描述 |
value |
String |
否 |
“” |
邏輯未刪除值 |
delval |
String |
否 |
“” |
邏輯刪除值 |
@KeySequence
- 描述:序列主鍵策略
oracle
- 屬性:value、resultMap
屬性 |
類型 |
必須指定 |
默認值 |
描述 |
value |
String |
否 |
“” |
序列名 |
clazz |
Class |
否 |
Long.class |
id的類型, 可以指定String.class,這樣返回的Sequence值是字符串"1" |