Maison Java javaDidacticiel Exemple de tutoriel de fichier de mappage SQL

Exemple de tutoriel de fichier de mappage SQL

Jul 17, 2017 pm 03:15 PM
文件 映射

Fichier de mappage SQL

La vraie puissance de MyBatis réside dans l'instruction de mappage. En comparant le prix avec jdbc avec des fonctions équivalentes, les fichiers de mappage économisent beaucoup de code. MyBatis est conçu pour se concentrer sur SQL.

Les fichiers de mappage SQL contiennent les éléments de niveau supérieur suivants : (dans l'ordre)

le cache configure le cache pour un espace de noms donné.

cache-ref fait référence à la configuration du cache à partir d'autres espaces de noms.

resultMap est l'élément le plus complexe et le plus puissant, utilisé pour décrire comment charger vos objets à partir du jeu de résultats de la base de données.

parameterMap est obsolète ! Cartographie des paramètres de style old-school. Les paramètres en ligne sont préférés, cet élément pourra être supprimé à l'avenir.

sql est un bloc SQL réutilisable et peut également être référencé par d'autres instructions.

insérer l'instruction d'insertion de mappage.

mettre à jour la déclaration de mise à jour de la cartographie.

supprimer les cartes supprimer les instructions.

sélectionnez l'instruction de requête de mappage.

MyBatis est conçu pour se concentrer sur SQL, en l'éloignant des méthodes ordinaires.

Les fichiers de mappage SQL ont quelques éléments de niveau supérieur (dans l'ordre dans lequel ils doivent être définis) :

>mapper : le nœud d'élément racine du fichier de mappage, avec seulement un attribut L'espace de noms de l'espace de noms est utilisé pour distinguer différents mappeurs. Il est globalement unique et le nom complet de l'interface DAO est lié à l'espace de noms, c'est-à-dire une programmation orientée interface. Le mappeur ici est équivalent à la classe d'implémentation de l'interface.

cache - Configure le cache pour l'espace de noms donné.

cache-ref – Configuration du cache de référence à partir d'autres espaces de noms.

resultMap - L'élément le plus complexe et le plus puissant, utilisé pour décrire comment charger vos objets à partir du jeu de résultats de la base de données.

parameterMap – Obsolète ! Cartographie des paramètres de style old-school. Les paramètres en ligne sont préférés, cet élément pourra être supprimé à l'avenir. Il ne sera pas enregistré ici.

sql – Bloc SQL qui peut être réutilisé et référencé par d'autres instructions.

insert - instruction d'insertion de mappage

update - instruction de mise à jour de mappage

delete - instruction de suppression de mappage

select - instruction de requête de mappage

1 : Utilisez select pour terminer la requête conditionnelle

Utilisez l'idée de l'outil et la base de données MySQL

Créez une classe d'entité

public class student {private int stuId;private String  stuName;private grade getGrade;private  int stuAge;public grade getGetGrade() {return getGrade;
    }public void setGetGrade(grade getGrade) {this.getGrade = getGrade;
    }public int getStuAge() {return stuAge;
    }   public student(int id,String name){

   }   public student(){}public void setStuAge(int stuAge) {this.stuAge = stuAge;
    }public int getStuId() {return stuId;
    }public void setStuId(int stuId) {this.stuId = stuId;
    }public String getStuName() {return stuName;
    }public void setStuName(String stuName) {this.stuName = stuName;
    }
}
Copier après la connexion

Utilisez select pour compléter la requête conditionnelle

1 : Configurez d'abord le mappeur pour utiliser resultType

<!--模糊查询   使用resultType返回结果集-->    
    <select id="getAllStudentByLike" parameterType="String" resultType="stu">* from student where stuName like CONCAT('%',#{stuName},'%'</select>
Copier après la connexion

Classe de test

 public  void Test() throws IOException {

        studentDao dao = MyBatis.getSessionTwo().getMapper(studentDao.class);
        List<student> list = dao.getAllStudentByLike("z");for (student item:list) {
            System.out.println("----------"+item.getStuName());
        }
}
Copier après la connexion

En plus de javaBean, les types complexes pris en charge par ParameterType incluent également le type Map

c'est-à-dire modifier le Mapper

 <!--模糊查询-->
    <select id="getAllStudentByLike" parameterType="Map" resultType="stu">select * from student where stuName like CONCAT('%',#{stuName},'%')</select>
Copier après la connexion

Créez ensuite une collection HashMap dans la classe de test et utilisez-la directement comme paramètre de méthode

studentDao dao = MyBatis.getSessionTwo().getMapper(studentDao.class);
        Map<String,String> userMap = new HashMap<String, String>();
        userMap.put("stuName","z");
        List<student> list = dao.getAllStudentByLike(userMap);for (student item:list) {
            System.out.println("----------"+item.getStuName());
        }
Copier après la connexion

Cependant, la valeur clé de la collection de cartes doit être la même que le nom du champ dans la classe.

Deux : utilisez resultMap pour compléter une requête à deux tables

Par exemple, si la table étudiant est associée à l'identifiant de clé primaire de la table de classe, si vous utilisez resultType, vous ne peut afficher que son identifiant, mais en pratique, vous vous concentrez souvent sur le nom de la classe, tous doivent utiliser resultMap pour mapper des résultats personnalisés.

<resultMap id="studentMap" type="entity.student">
<id property="stuId" column="stuId"></id>
        <result property="stuName" column="stuName"></result>
        <result property="gradeName" column="gradeName">
       
    </resultMap>

//sql语句
Copier après la connexion
select * from student,grade
Copier après la connexion

resultType représente directement le type de retour, y compris les types de base et les types de données complexes

resultMap est une référence au resultMap externe, correspondant au id du resultMap Indique à quel resultMap le résultat renvoyé est mappé. : Ses scénarios d'application sont les suivants : les informations des champs de base de données sont incohérentes avec les attributs de l'objet ou des requêtes conjointes complexes doivent être effectuées pour contrôler librement les résultats du mappage.

De plus, dans l'élément select de MyBatis, resultType et resultMap sont essentiellement les mêmes, les deux sont des structures de données Map. Mais les deux ne peuvent exister en même temps.

Trois : utiliser le niveau de mappage automatique de resultMap

MyBatis est divisé en trois niveaux de mappage

>AUCUN : désactiver la correspondance automatique

>PARTIEL :(Par défaut) : Faire correspondre automatiquement tous les attributs sauf ceux avec imbrication interne (association, collection)

>FULL : Faire correspondre automatiquement tous les

Définir autoMappingBehavior

 <settings>   <!--设置resultMap的自动映射级别为Full(自动匹配所有)--><setting name="autoMappingBehavior" value="FULL" />   <!--FULL要大写··--> </settings>
Copier après la connexion

Lors de la définition de la valeur de autoMappingBehavior sur FULL, il n'est pas nécessaire de configurer les nœuds sous resultMap. Ils correspondront automatiquement en fonction de la base de données

Quatre. : Utilisez la mise à jour pour terminer la modification

 <update id="update">update student set stuName=#{0} where stuId=#{1}</update>
Copier après la connexion

Voici une façon plus simple d'utiliser des espaces réservés comme paramètres. Remplissez simplement les paramètres. directement dans la classe de test.

Cinq : utilisez l'association d'attributs qui mappe les types complexes

Le résultat précédent ne peut être mappé qu'à un certain attribut "type simple" de javaBean, type de données de base et classe d'empaquetage, etc./

Mais lorsque vous souhaitez mapper des propriétés de types complexes, vous devez utiliser une association de classes complexes : c'est-à-dire qu'il y a un autre javaBean dans un javaBean, mais une association. ne gère que les relations individuelles

        stuAge;

   。。。。。省略封装
Copier après la connexion

 <resultMap id="studentMap" type="entity.student">
       <!-- <id property="stuId" column="stuId"></id>
        <result property="stuName" column="stuName"></result>-->
        <!--关联另一个 属性-->
        <association property="getGrade" javaType="grade">
       <!-- <id property="gradeId" javaType="Integer" column="gradeId"></id>
       <result property="gradeName" javaType="String" column="gradeName"></result>-->
        </association>
    </resultMap>
    <!--这里使用了自动匹配-->
Copier après la connexion
<select id="getAllStudent" resultMap="studentMap"> SELECT * FROM student,grade WHERE student.stuGrade=grade.gradeId</select>
Copier après la connexion

测试类里直接调用即可

六:前面说到association仅处理一对一的管理关系

    如果要处理一对多的关系,则需要使用collection,它与 association元素差不多,但它映射的属性是一个集合列表,即javaBean内部嵌套一个复杂数据类型属性。

javaBean

  private int gradeId;private String gradeName;private List<student> gatStudent;
Copier après la connexion
 <resultMap id="gradeMap" type="grade">
        <!--<id property="gradeId" column="gradeId"></id>
        <result property="gradeName" column="gradeName"></result>-->
        <collection property="gatStudent" ofType="stu">
             <!-- <id property="stuId" column="stuId"></id>
              <result property="stuName" column="stuName"></result>-->
        </collection>
    </resultMap>
Copier après la connexion
 <!--查询对应年级的student-->
    <select id="getAll" resultMap="gradeMap">   select * from student,grade where stuGrade = gradeId and gradeId=1
    </select>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment récupérer des fichiers WeChat expirés ? Les fichiers WeChat expirés peuvent-ils être récupérés ? Comment récupérer des fichiers WeChat expirés ? Les fichiers WeChat expirés peuvent-ils être récupérés ? Feb 22, 2024 pm 02:46 PM

Ouvrez WeChat, sélectionnez Paramètres dans Moi, sélectionnez Général, puis sélectionnez Espace de stockage, sélectionnez Gestion dans Espace de stockage, sélectionnez la conversation dans laquelle vous souhaitez restaurer les fichiers et sélectionnez l'icône de point d'exclamation. Didacticiel Modèle applicable : iPhone13 Système : iOS15.3 Version : WeChat 8.0.24 Analyse 1 Ouvrez d'abord WeChat et cliquez sur l'option Paramètres sur la page Ma. 2 Ensuite, recherchez et cliquez sur Options générales sur la page des paramètres. 3Cliquez ensuite sur Espace de stockage sur la page générale. 4 Ensuite, cliquez sur Gérer sur la page de l'espace de stockage. 5Enfin, sélectionnez la conversation dans laquelle vous souhaitez récupérer des fichiers et cliquez sur l'icône de point d'exclamation à droite. Supplément : les fichiers WeChat expirent généralement au bout de quelques jours. Si le fichier reçu par WeChat n'a pas été cliqué, le système WeChat l'effacera après 72 heures. Si le fichier WeChat a été consulté,

Photos ne peut pas ouvrir ce fichier car le format n'est pas pris en charge ou le fichier est corrompu Photos ne peut pas ouvrir ce fichier car le format n'est pas pris en charge ou le fichier est corrompu Feb 22, 2024 am 09:49 AM

Sous Windows, l'application Photos constitue un moyen pratique d'afficher et de gérer des photos et des vidéos. Grâce à cette application, les utilisateurs peuvent facilement accéder à leurs fichiers multimédia sans installer de logiciel supplémentaire. Cependant, les utilisateurs peuvent parfois rencontrer des problèmes, tels que le message d'erreur « Ce fichier ne peut pas être ouvert car le format n'est pas pris en charge » lors de l'utilisation de l'application Photos, ou une corruption de fichier lorsqu'ils tentent d'ouvrir des photos ou des vidéos. Cette situation peut être déroutante et gênante pour les utilisateurs, nécessitant des investigations et des correctifs pour résoudre les problèmes. Les utilisateurs voient l'erreur suivante lorsqu'ils tentent d'ouvrir des photos ou des vidéos sur l'application Photos. Désolé, Photos ne peut pas ouvrir ce fichier car le format n'est pas actuellement pris en charge ou le fichier

Les fichiers au format Tmp peuvent-ils être supprimés ? Les fichiers au format Tmp peuvent-ils être supprimés ? Feb 24, 2024 pm 04:33 PM

Les fichiers au format Tmp sont un format de fichier temporaire généralement généré par un système informatique ou un programme lors de l'exécution. Le but de ces fichiers est de stocker des données temporaires pour aider le programme à fonctionner correctement ou à améliorer les performances. Une fois l'exécution du programme terminée ou l'ordinateur redémarré, ces fichiers tmp ne sont souvent plus nécessaires. Par conséquent, pour les fichiers au format Tmp, ils sont essentiellement supprimables. De plus, la suppression de ces fichiers tmp peut libérer de l'espace sur le disque dur et assurer le fonctionnement normal de l'ordinateur. Cependant, avant de supprimer les fichiers au format Tmp, nous devons

Que faire si le code d'erreur 0x80004005 apparaît. L'éditeur vous apprendra comment résoudre le code d'erreur 0x80004005. Que faire si le code d'erreur 0x80004005 apparaît. L'éditeur vous apprendra comment résoudre le code d'erreur 0x80004005. Mar 21, 2024 pm 09:17 PM

Lors de la suppression ou de la décompression d'un dossier sur votre ordinateur, une boîte de dialogue d'invite « Erreur 0x80004005 : erreur non spécifiée » apparaît parfois. Comment devez-vous résoudre cette situation ? Il existe en fait de nombreuses raisons pour lesquelles le code d'erreur 0x80004005 est demandé, mais la plupart d'entre elles sont causées par des virus. Nous pouvons réenregistrer la DLL pour résoudre le problème. Ci-dessous, l'éditeur vous expliquera l'expérience de gestion du code d'erreur 0x80004005. . Certains utilisateurs reçoivent le code d'erreur 0X80004005 lors de l'utilisation de leur ordinateur. L'erreur 0x80004005 est principalement due au fait que l'ordinateur n'enregistre pas correctement certains fichiers de bibliothèque de liens dynamiques ou à un pare-feu qui n'autorise pas les connexions HTTPS entre l'ordinateur et Internet. Alors que diriez-vous

Comment installer les fichiers GHO Comment installer les fichiers GHO Feb 19, 2024 pm 10:06 PM

Le fichier gho est un fichier image GhostImage, qui est généralement utilisé pour sauvegarder l'intégralité des données du disque dur ou de la partition dans un fichier. Dans certains cas spécifiques, nous devons réinstaller ce fichier gho sur le disque dur pour restaurer le disque dur ou la partition à son état précédent. Ce qui suit explique comment installer le fichier gho. Tout d'abord, avant l'installation, nous devons préparer les outils et le matériel suivants : Fichier gho d'entité : assurez-vous d'avoir un fichier gho complet, qui a généralement un suffixe .gho et contient une sauvegarde.

Comment transférer des fichiers de Quark Cloud Disk vers Baidu Cloud Disk ? Comment transférer des fichiers de Quark Cloud Disk vers Baidu Cloud Disk ? Mar 14, 2024 pm 02:07 PM

Quark Netdisk et Baidu Netdisk sont actuellement les logiciels Netdisk les plus couramment utilisés pour stocker des fichiers. Si vous souhaitez enregistrer les fichiers de Quark Netdisk sur Baidu Netdisk, comment procéder ? Dans ce numéro, l'éditeur a compilé les étapes du didacticiel pour transférer des fichiers d'un ordinateur Quark Network Disk vers Baidu Network Disk. Voyons comment le faire fonctionner. Comment enregistrer les fichiers du disque réseau Quark sur le disque réseau Baidu ? Pour transférer des fichiers de Quark Network Disk vers Baidu Network Disk, vous devez d'abord télécharger les fichiers requis depuis Quark Network Disk, puis sélectionner le dossier cible dans le client Baidu Network Disk et l'ouvrir. Ensuite, faites glisser et déposez les fichiers téléchargés depuis Quark Cloud Disk dans le dossier ouvert par le client Baidu Cloud Disk, ou utilisez la fonction de téléchargement pour ajouter les fichiers sur Baidu Cloud Disk. Assurez-vous de vérifier si le fichier a été transféré avec succès dans Baidu Cloud Disk une fois le téléchargement terminé. C'est ça

Différentes utilisations des barres obliques et des barres obliques inverses dans les chemins de fichiers Différentes utilisations des barres obliques et des barres obliques inverses dans les chemins de fichiers Feb 26, 2024 pm 04:36 PM

Un chemin de fichier est une chaîne utilisée par le système d'exploitation pour identifier et localiser un fichier ou un dossier. Dans les chemins de fichiers, il existe deux symboles courants séparant les chemins, à savoir la barre oblique (/) et la barre oblique inverse (). Ces deux symboles ont des utilisations et des significations différentes selon les systèmes d'exploitation. La barre oblique (/) est un séparateur de chemin couramment utilisé dans les systèmes Unix et Linux. Sur ces systèmes, les chemins de fichiers partent du répertoire racine (/) et sont séparés par des barres obliques entre chaque répertoire. Par exemple, le chemin /home/user/Docume

Qu'est-ce que le fichier hiberfil.sys ? hiberfil.sys peut-il être supprimé ? Qu'est-ce que le fichier hiberfil.sys ? hiberfil.sys peut-il être supprimé ? Mar 15, 2024 am 09:49 AM

Récemment, de nombreux internautes ont demandé à l'éditeur : quel est le fichier hiberfil.sys ? hiberfil.sys peut-il occuper beaucoup d’espace sur le disque C et être supprimé ? L'éditeur peut vous indiquer que le fichier hiberfil.sys peut être supprimé. Jetons un coup d'œil aux détails ci-dessous. hiberfil.sys est un fichier caché dans le système Windows et également un fichier d'hibernation du système. Il est généralement stocké dans le répertoire racine du lecteur C et sa taille est équivalente à la taille de la mémoire installée du système. Ce fichier est utilisé lorsque l'ordinateur est en veille prolongée et contient les données de mémoire du système actuel afin qu'il puisse être rapidement restauré à son état précédent lors de la récupération. Étant donné que sa taille est égale à la capacité de la mémoire, il peut occuper une plus grande quantité d’espace sur le disque dur. hiberner

See all articles