Annotations communes Mybatis-Plus

Table des matières

Annotations communes Mybatis-Plus

1. @NomTable

2、@TableId

2.1 Type d'identifiant

3、@TableField

4、@Version

5、@EnumValue

6、@TableLogic

7、@KeySequence

8、@OrderBy


Annotations communes Mybatis-Plus

1. @NomTable

  • Description : Annotation du nom de la table, identifiant la table correspondant à la classe d'entité
  • Où utiliser : classe d'entité
@TableName("sys_user")
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;
}

 

Les attributs taper Doit être précisé valeur par défaut décrire
valeur Chaîne Non "" Nom de la table
schéma Chaîne Non "" schéma
keepGlobalPrefix booléen Non FAUX S'il faut continuer à utiliser la valeur globale tablePrefix (lorsque la valeur globale tablePrefix est en vigueur)
carterésultat Chaîne Non "" L'identifiant de resultMap en XML (utilisé pour satisfaire des types spécifiques de liaison d'objet de classe d'entité)
Carte de résultats automatique booléen Non FAUX S'il faut créer et utiliser automatiquement resultMap (si resultMap est défini, la construction et l'injection automatiques de resultMap ne seront pas effectuées)
exclurePropriété Chaîne[] Non {} Noms d'attributs à exclure

Description à propos de autoResultMap :

MP en créera automatiquement un  resultMap et l'injectera dans MyBatis (généralement non utilisé), veuillez noter ce qui suit :

Parce que la couche inférieure de MP est MyBatis, MP vous aide simplement à injecter du CRUD couramment utilisé dans MyBatis. Avant l'injection, il est dynamique (change en fonction de vos champs d'entité et de vos annotations), mais après l'injection, il est statique (égal au contenu dans la configuration XML).

Pour  typeHandler les attributs, MyBatis ne prend en charge l'écriture qu'à 2 endroits :

  1. Défini dans resultMap, utilisé pour encapsuler les résultats de la requête
  2. Défini   après  l'  instruction  insert and   (par exemple : ), et s'applique uniquement à l'instruction actuelle. update#{property}property#{property,typehandler=xxx.xxx.xxx}设置值

En plus des deux  typeHandler formulaires directement spécifiés ci-dessus, MyBatis dispose d'une configuration d'analyse globale des packages personnalisés  , le principe est  de trouver celui correspondant  typeHandler selon votre  type  et de l'utiliser.propertytypeHandler

2、@TableId

  • Description : Annotation de clé primaire
  • Où utiliser : champ de clé primaire de classe d'entité
@TableName("sys_user")
public class User {
    @TableId
    private Long id;
    private String name;
    private Integer age;
    private String email;
}
Les attributs taper Doit être précisé valeur par défaut décrire
valeur Chaîne Non "" Nom du champ de clé primaire
taper Énumération Non IdType.NONE Spécifier le type de clé primaire

2.1 Type d'identifiant

Les attributs

illustrer

AUTO Incrémentation automatique de l'ID de base de données
AUCUN Sans état, ce type n'a pas de jeu de clés primaires (l'annotation équivaut à suivre le global, et le Rio global est approximativement égal à INPUT)
SAISIR Définir la valeur de la clé primaire avant l'insertion
ASSIGN_ID Attribuez un ID (le type de clé primaire est Number (Long and Integer) ou String) (depuis 3.3.0), utilisez la IdentifierGeneratorméthode d'interface nextId(la classe d'implémentation par défaut est DefaultIdentifierGeneratorl'algorithme Snowflake)
ASSIGN_UUID Attribuez l'UUID, le type de clé primaire est String (depuis 3.3.0), utilisez IdentifierGeneratorla méthode d'interface nextUUID(méthode par défaut par défaut)

3、@TableField

  • Description : Annotation de champ (clé non primaire)
@TableName("sys_user")
public class User {
    @TableId
    private Long id;
    @TableField("nickname")
    private String name;
    private Integer age;
    private String email;
}
Les attributs taper Doit être précisé valeur par défaut décrire
valeur Chaîne Non "" Nom du champ de base de données
exister booléen Non vrai Qu'il s'agisse d'un champ de table de base de données
condition Chaîne Non "" Conditions de comparaison des requêtes d'entité de champ  where . Si une valeur est définie, la valeur définie prévaudra. Dans le cas contraire, elle sera globale par défaut  %s=#{%s}. Veuillez vous référer à (ouvre une nouvelle fenêtre)
mise à jour Chaîne Non "" Injection partielle du champ  update set , par exemple : lors de l'annotation du champ version pour update="%s+1" indiquer une mise à jour  set version=version+1 (cet attribut a une priorité plus élevée que  el l'attribut)
insérerStratégie Énumération Non FieldStrategy.DEFAULT Exemple : NOT_NULL
insert into table_a(<if test="columnProperty != null">column</if>) values (<if test="columnProperty != null">#{columnProperty}</if>)
updateStrategy Enum FieldStrategy.DEFAULT 举例:IGNORED
update table_a set column=#{columnProperty}
whereStrategy Enum FieldStrategy.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 类型 (该默认值不代表会按照该值生效)
typeHandler Class<? extends TypeHandler> UnknownTypeHandler.class 类型处理器 (该默认值不代表会按照该值生效)
numericScale String "" 指定小数点后保留的位数

 注意:

关于`jdbcType`和`typeHandler`以及`numericScale`的说明:

numericScale只生效于 update 的 sql. jdbcTypetypeHandler如果不配合@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

Description : Annotations de traitement logique du champ de table (suppression logique)

Les attributs taper Doit être précisé valeur par défaut décrire
valeur Chaîne Non "" valeur logique non supprimée
Delval Chaîne Non "" valeur de base

7、@KeySequence

  • Description : stratégie de clé primaire de séquence oracle
  • Attributs : valeur, dbType
Les attributs taper Doit être précisé valeur par défaut décrire
valeur Chaîne Non "" nom de la séquence
Type de base de données Énumération Non DbType.AUTRE Type de base de données. Si elle n'est pas configurée, l'implémentation par défaut consiste à injecter IKeyGenerator. Plusieurs implémentations doivent être spécifiées.

8、@OrderBy

Description : SQL intégré spécifie le tri par défaut, avec une priorité inférieure à la requête conditionnelle du wrapper

Les attributs taper Doit être précisé valeur par défaut décrire
estDesc booléen Non vrai S'il faut interroger dans l'ordre inverse
trier court Non Court.MAX_VALUE Plus le nombre est petit, plus il est élevé

 

 Référence : Annotations | MyBatis-Plus

Je suppose que tu aimes

Origine blog.csdn.net/qi341500/article/details/132651227
conseillé
Classement