Inhaltsverzeichnis
Allgemeine Anmerkungen zu Mybatis-Plus
Allgemeine Anmerkungen zu Mybatis-Plus
1. @TableName
- Beschreibung: Annotation zum Tabellennamen, die die Tabelle identifiziert, die der Entitätsklasse entspricht
- Verwendungszweck: Entitätsklasse
@TableName("sys_user")
public class User {
private Long id;
private String name;
private Integer age;
private String email;
}
Attribute | Typ | Muss angegeben werden | Standardwert | beschreiben |
Wert | Zeichenfolge | NEIN | „“ | Tabellenname |
Schema | Zeichenfolge | NEIN | „“ | Schema |
keepGlobalPrefix | Boolescher Wert | NEIN | FALSCH | Ob der globale TablePrefix-Wert weiterhin verwendet werden soll (wenn der globale TablePrefix wirksam ist) |
resultMap | Zeichenfolge | NEIN | „“ | Die ID von resultMap in XML (wird verwendet, um bestimmte Arten der Objektbindung von Entitätsklassen zu erfüllen) |
autoResultMap | Boolescher Wert | NEIN | FALSCH | Ob resultMap automatisch erstellt und verwendet werden soll (wenn resultMap festgelegt ist, wird die automatische Erstellung und Injektion von resultMap nicht durchgeführt) |
ausschließenEigenschaft | String[] | NEIN | {} | Auszuschließende Attributnamen |
Beschreibung über autoResultMap
:
MP erstellt automatisch eines resultMap
und injiziert es in MyBatis (im Allgemeinen nicht verwendet). Bitte beachten Sie Folgendes:
Da die unterste Ebene von MP MyBatis ist, hilft Ihnen MP lediglich dabei, häufig verwendetes CRUD in MyBatis zu injizieren. Vor der Injektion ist es dynamisch (ändert sich entsprechend Ihren Entitätsfeldern und Anmerkungen), aber nach der Injektion ist es statisch (entspricht dem Inhalt in der XML-Konfiguration).
Für typeHandler
Attribute unterstützt MyBatis nur das Schreiben an zwei Stellen:
- Definiert in resultMap, wird zum Kapseln von Abfrageergebnissen verwendet
- Wird nach der
insert
and-update
Anweisung definiert (zum Beispiel: ) und gilt nur für den aktuellen#{property}
property
#{property,typehandler=xxx.xxx.xxx}
设置值
Zusätzlich zu den beiden oben genannten direkt angegebenen typeHandler
Formularen verfügt MyBatis über eine Konfiguration zum globalen Scannen benutzerdefinierter Pakete. Das Prinzip besteht darin , das entsprechende Paket typeHandler
entsprechend Ihrem Typ zu finden und zu verwenden.property
typeHandler
2、@TableId
- Beschreibung: Primärschlüsselanmerkung
- Verwendungszweck: Primärschlüsselfeld der Entitätsklasse
@TableName("sys_user")
public class User {
@TableId
private Long id;
private String name;
private Integer age;
private String email;
}
Attribute | Typ | Muss angegeben werden | Standardwert | beschreiben |
Wert | Zeichenfolge | NEIN | „“ | Name des Primärschlüsselfelds |
Typ | Aufzählung | NEIN | IdType.NONE | Geben Sie den Primärschlüsseltyp an |
2.1 IdType
Attribute | veranschaulichen |
AUTO | Automatische Erhöhung der Datenbank-ID |
KEINER | Zustandslos, dieser Typ hat keinen Primärschlüsselsatz (die Annotation entspricht dem Folgen des globalen, und das globale Rio entspricht ungefähr INPUT). |
EINGANG | Legen Sie den Primärschlüsselwert vor dem Einfügen fest |
ASSIGN_ID | Weisen Sie eine ID zu (Primärschlüsseltyp ist Zahl (Long und Integer) oder String) (seit 3.3.0), verwenden Sie die Schnittstellenmethode IdentifierGenerator ( nextId die Standardimplementierungsklasse ist der DefaultIdentifierGenerator Snowflake-Algorithmus). |
ASSIGN_UUID | UUID zuweisen, Primärschlüsseltyp ist String (seit 3.3.0), Schnittstellenmethode verwenden IdentifierGenerator ( nextUUID Standardmethode) |
3、@TableField
- Beschreibung: Feldanmerkungen (nicht Primärschlüssel)
@TableName("sys_user")
public class User {
@TableId
private Long id;
@TableField("nickname")
private String name;
private Integer age;
private String email;
}
Attribute | Typ | Muss angegeben werden | Standardwert | beschreiben |
---|---|---|---|---|
Wert | Zeichenfolge | NEIN | „“ | Name des Datenbankfelds |
existieren | Boolescher Wert | NEIN | WAHR | Ob es sich um ein Datenbanktabellenfeld handelt |
Zustand | Zeichenfolge | NEIN | „“ | Vergleichsbedingungen für Feldentitätsabfragen where . Wenn ein Wert festgelegt ist, hat der festgelegte Wert Vorrang. Wenn nicht, ist er standardmäßig global %s=#{%s} . Weitere Informationen finden Sie unter (öffnet neues Fenster). |
aktualisieren | Zeichenfolge | NEIN | „“ | Feld update set -Teilinjektion, zum Beispiel: beim Annotieren des Versionsfelds, um update="%s+1" eine Aktualisierung anzuzeigen set version=version+1 (dieses Attribut hat eine höhere Priorität als el das Attribut) |
insertStrategy | Aufzählung | NEIN | FieldStrategy.DEFAULT | Beispiel: NOT_NULLinsert into table_a(<if test="columnProperty != null">column</if>) values (<if test="columnProperty != null">#{columnProperty}</if>) |
updateStrategy | Enum | 否 | FieldStrategy.DEFAULT | 举例:IGNOREDupdate table_a set column=#{columnProperty} |
whereStrategy | Enum | 否 | FieldStrategy.DEFAULT | 举例:NOT_EMPTYwhere <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 类型 (该默认值不代表会按照该值生效) |
typeHandler | Class<? extends TypeHandler> | 否 | UnknownTypeHandler.class | 类型处理器 (该默认值不代表会按照该值生效) |
numericScale | String | 否 | "" | 指定小数点后保留的位数 |
注意:
关于`jdbcType`和`typeHandler`以及`numericScale`的说明:
numericScale
只生效于 update 的 sql. jdbcType
和typeHandler
如果不配合@TableName#autoResultMap = true
一起使用,也只生效于 update 的 sql. 对于typeHandler
如果你的字段类型和 set 进去的类型为equals
关系,则只需要让你的typeHandler
让 Mybatis 加载到即可,不需要使用注解
FieldStrategy:
值 | 描述 |
---|---|
IGNORED | 忽略判断 |
NOT_NULL | 非 NULL 判断 |
NOT_EMPTY | 非空判断(只对字符串类型字段,其他类型字段依然为非 NULL 判断) |
DEFAULT | 追随全局配置 |
NEVER | 不加入SQL |
FieldFill:
值 | 描述 |
---|---|
DEFAULT | 默认不处理 |
INSERT | 插入时填充字段 |
UPDATE | 更新时填充字段 |
INSERT_UPDATE | 插入和更新时填充字段 |
4、@Version
描述:乐观锁注解、标记 @Version
在字段上
5、@EnumValue
描述:普通枚举类注解(注解在枚举字段上)
6、@TableLogic
Beschreibung: Anmerkungen zur logischen Verarbeitung des Tabellenfelds (logisches Löschen)
Attribute | Typ | Muss angegeben werden | Standardwert | beschreiben |
---|---|---|---|---|
Wert | Zeichenfolge | NEIN | „“ | logischer wiederhergestellter Wert |
delval | Zeichenfolge | NEIN | „“ | Grabsteinwert |
7、@KeySequence
- Beschreibung: Sequenz-Primärschlüsselstrategie
oracle
- Attribute: Wert, dbType
Attribute | Typ | Muss angegeben werden | Standardwert | beschreiben |
---|---|---|---|---|
Wert | Zeichenfolge | NEIN | „“ | Sequenzname |
dbType | Aufzählung | NEIN | DbType.OTHER | Datenbanktyp. Wenn nicht konfiguriert, besteht die Standardimplementierung darin, IKeyGenerator einzufügen. Es müssen mehrere Implementierungen angegeben werden. |
8、@OrderBy
Beschreibung: Integriertes SQL gibt die Sortierung standardmäßig mit einer niedrigeren Priorität als der bedingten Wrapper-Abfrage an
Attribute | Typ | Muss angegeben werden | Standardwert | beschreiben |
---|---|---|---|---|
isDesc | Boolescher Wert | NEIN | WAHR | Ob in umgekehrter Reihenfolge abgefragt werden soll |
Sortieren | kurz | NEIN | Short.MAX_VALUE | Je kleiner die Zahl, desto höher ist sie |
Referenz: Anmerkungen | MyBatis-Plus