1. Méthodes de cartographie prises en charge par mybatis
Les méthodes de cartographie prises en charge par mybatis incluent mapper.xml fichiers basés sur XML et des classes d’interface mapper basées sur Java. Il existe quatre principales annotations de méthodes d’interface : @Insert, @Delete, @Update et @Select
2. Comment cartographier à l’aide d’annotations d’interface
Les expériences suivantes sont toutes basées sur t_user tables et sont structurées comme suit :
2.1 Augmentation @Insert
Il existe essentiellement trois schémas pour cela, à savoir la désignation manuelle (couche application), la clé primaire auto-additionnelle (table unique de couche de données) et la clé primaire de sélection (table multiple de couche de données).
1. Spécifier manuellement la clé primaire à la couche application
La méthode manuelle ne traite pas la clé primaire différemment, et attribuera une valeur à la clé primaire lorsque la couche application génère l’objet avant l’insertion, ce qui ne diffère pas du champ normal lors de l’insertion.
Dans l’exemple ci-dessus, mybatis ne sait pas quel champ est la clé primaire, et id est le champ de clé primaire, mais il n’est pas traité différemment.
Notez que la méthode #{username} consiste à utiliser User comme contexte actuel, afin qu’en accédant aux attributs User, vous puissiez écrire directement le nom de l’attribut.
2. La table ajoute la clé primaire
La clé primaire auto-incrémentante correspond au remplissage de la clé primaire dans la configuration XML, un exemple simple :
Utilisez Option pour correspondre aux propriétés du set de balises select en XML, userGeneratordKeys pour indiquer que vous souhaitez utiliser une clé primaire auto-incrémentable, et keyProperty pour spécifier le nom du champ clé primaire.
La clé primaire auto-incrémentante utilise les fonctionnalités auto-incrémentables de la base de données sous-jacente.
3. Sélectionner la tonalité primaire
Sélectionnez la clé primaire pour générer une valeur à partir de la couche de données et utilisez cette valeur comme valeur de la clé primaire.
2.2 Supprimer @Delete
Lors de la suppression, il suffit d’écrire la condition dans la valeur de l’annotation @Delete, et de retourner un type int comme nombre d’enregistrements supprimés avec succès.
2.3 Changement @Update
Lors de la modification, il suffit d’écrire l’instruction SQL dans la valeur du @Update, puis de renvoyer un type int pour indiquer le nombre de lignes d’enregistrement modifiées.
2.4 Vérifier @Select
La requête est un peu plus compliquée, car la requête consiste à définir les champs trouvés sur l’objet, et il existe généralement trois façons :
1. Spécifier manuellement un alias dans l’instruction SQL pour qu’il corresponde
Lors de l’écriture d’instructions SQL, attribuez manuellement un alias à chaque champ pour correspondre aux attributs de l’objet, ce qui convient aux situations où le nom du champ de table et celui de l’attribut de l’objet sont très différents et où il n’y a pas beaucoup de champs de table.
2. Utiliser la transformation automatique de bosse de mybatis
mybatis propose une option appelée mapUnderscoreToCamelCase qui s’applique lorsque le nom du champ dans le tableau est identique au nom de l’attribut de l’objet, mais avec la différence entre l’écriture underscore et la « hump ».
Après avoir configuré mapUnderscoreToCamelCase, mybatis essaiera de convertir le sous-score en une bosse en définissant les données trouvées dans le ResultSet sur l’objet, puis assemblera l’ensemble devant pour définir les attributs.
Allumez la conversion :
Puis posez la question suivante :
En regardant le résultat imprimé, birth_day attributs sont remplis dans l’objet :
3. Utiliser ResultMap
Si le nom du champ de la table et celui de l’attribut de l’objet ne sont pas très similaires, et qu’il y a de nombreux champs dans la table, ResultMap doit être utilisé pour l’adaptation.
@Results correspond au ResultMap en XML, et vous pouvez spécifier un id pour celui-ci, qui peut servir à le référencer ailleurs, par exemple pour référencer les résultats ci-dessus :
Utilisez @ResultMap pour référencer un ResultMap existant, qui peut être défini en Java via des annotations @Results ou en XML avec des balises resultMap.
2.5 Code d’exemple
User.java
UserMapper.java
3. Résumé
Avantages d’utiliser des annotations d’interface :
1. Il est plus pratique et rapide d’écrire des instructions de correspondance
Inconvénients de l’utilisation d’annotations d’interface :
1. Il convient à des configurations relativement simples, et l’interface ne peut pas être réalisée lorsqu’elle est trop complexe.
2. Impossible d’utiliser SQL dynamique, un peu de mauvais goût.
|