English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriel d'introduction à l'apprentissage du cadre mybatis

MyBatis est un excellent cadre de persistance qui prend en charge les requêtes SQL normales, les procédures stockées et les mappages avancés. MyBatis élimine presque tout le code JDBC et la configuration manuelle des paramètres, ainsi que l'encapsulation de la recherche des ensembles de résultats. MyBatis peut utiliser un simple XML ou des annotations pour la configuration et la cartographie primitive, pour mapper les interfaces et les POJO (Plain Old Java Objects, objets Java ordinaires) en enregistrements de la base de données.

1Créer un projet, importer les jar packages

   Créer un projet Java ou un projet Web, puis importer les jar packages de MyBatis et les dépendances, ainsi que les jar packages de la base de données, j'utilise Oracle10g de la base de données

   mybatis-3.2.2.jar Pilote principal

   asm-3.3.1.jar
   cglib-2.2.2.jar
   commons-logging-1.1.1.jar
   javassist-3.17.1-GA.jar
   log4j-1.2.17.jar
   slf4j-api-1.7.5.jar
   slf4j-log4j12-1.7.5.jar
   classes12.jar Oracle10g du jar

2.Créer le fichier de configuration principal de la connexion à la base de données sqlMapConfig.xml

    Créer un fichier sqlMapConfig.xml sous le répertoire src

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
  <!--Configuration de la source de données, environnement-->
  <!--Il est possible de configurer plusieurs environnements, un pour le test et un pour le lancement-->
  <environments default="test">
    <!--Environnement de test-->
    <environment id="test">
      <!--Configuration des transactions : transaction JDBC/Géré par le conteneur des transactions-->
      <transactionManager type="JDBC"></transactionManager>
      <!--Source de données : poolé/Non-poolé/Chiffrement de mot de passe JNDI, sécurité élevée-->
      <dataSource type="POOLED">
        <property name="driver" value="oracle.jdbc.OracleDriver"/>
        <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
        <property name="username" value="scott"/>
        <property name="password" value="luogg"/>
      </dataSource>
    </environment>
    <!--Environnement de serveur-->
    <environment id="deploy">
      <transactionManager type="JDBC"></transactionManager>
      <dataSource type="POOLED">
        <property name="driver" value="oracle.jdbc.OracleDriver"/>
        <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
        <property name="username" value="scott"/>
        <property name="password" value="luogg"/>
      </dataSource>
    </environment>
  </environments>
  <mappers>
    <mapper resource="com/luogg/mapper/PersonMapper.xml"/>
  </mappers>
</configuration>

3.Créer un dossier test sous src, puis créer un fichier TestMybatis.java

package test;
import com.luogg.domain.Person;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
/**
 * Créé par luogg le 2017/2/17.
 */
public class TestMybatis {
  @Test
  public void init() throws IOException {
    /**
     * Tester la connexion à la base de données
     * 1.Définir une variable de type String nommée resource, pointant vers le fichier xml de configuration de la connexion à la base de données précédemment configuré
     * 2.Créer un flux d'entrée pour lire notre fichier de configuration de base de données
     * 3.Créer un flux d'entrée pour créer l'usine
     * 4.Ouvrir l'usine après avoir eu l'usine
     */
    String resource = "sqlMapConfig.xml";
    InputStream is = Resources.getResourceAsStream(resource);
    SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
    SqlSession session = factory.openSession();
}

Maintenant, nous pouvons effectuer des tests unitaires pour voir si la session a été créée, vert signifie succès, alors nous allons créer une table de base de données et écrire des requêtes SQL

4.Créer une base de données et écrire des données

CREATE TABLE person(
   ID NUMBER(2),
   NAME VARCHAR2(20),
   sex NUMBER(2),
   age NUMBER(3)
)
-- Écrire des données, cliquer sur le bouton de verrouillage en bas, puis cliquer sur +
SELECT * FROM person FOR UPDATE

5.Créer un paquet com.luogg.domain sous src, puis créer un fichier Person.java en tant qu'entité bean

package com.luogg.domain;
/**
 * Créé par luogg le 2017/2/17.
 */
public class Person {
  private String name;
  private int sex;
  private int age;
  private int id;
  @Override
  public String toString() {
    return "Person{" +
        "name='" + name + '\'' +
        ", sex=" + sex +
        ", age=" + age +
        ", id=" + id +
        '}';
  }
  public int getId() {
    return id;
  }
  public void setId(int id) {
    this.id = id;
  }
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public int getSex() {
    return sex;
  }
  public void setSex(int sex) {
    this.sex = sex;
  }
  public int getAge() {
    return age;
  }
  public void setAge(int age) {
    this.age = age;
  }
}

6.Créer un fichier de carte correspondant à la base de données, créez un fichier PersonMapper.xml dans le paquet com.luogg.mapper sous src

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--Configuration de l'espace de nom, espace de nom+ .id est un identificateur de requête SQL unique-->
<mapper namespace="com.luogg.mapper.PersonMapper">
  <!--Recherche de toutes les données, paramètres id, resultType ensemble de résultats, parameterType paramètre-->
  <!--Attention : si l'instruction SQL contient des informations à remplir pour la collection, par exemple, rechercher toutes les données, retourner un ensemble de résultats Person, alors le paramètre resultType écrit directement le chemin+Type de collection
    Par exemple : retourner un ensemble de Person, alors remplir le chemin du Bean Person+Person-->
  <select id="find" resultType="com.luogg.domain.Person">
    SELECT * from person
  </select>
</mapper>

7.Faire une carte dans le fichier de configuration principal sqlMapConfig.xml pour le faire reconnaître nos fichiers de configuration qui ont écrit des instructions SQL

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
  <!--Configuration de la source de données, environnement-->
  <!--Il est possible de configurer plusieurs environnements, un pour le test et un pour le lancement-->
  <environments default="test">
    <!--Environnement de test-->
    <environment id="test">
      <!--Configuration des transactions : transaction JDBC/Géré par le conteneur des transactions-->
      <transactionManager type="JDBC"></transactionManager>
      <!--Source de données : poolé/Non-poolé/Chiffrement de mot de passe JNDI, sécurité élevée-->
      <dataSource type="POOLED">
        <property name="driver" value="oracle.jdbc.OracleDriver"/>
        <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
        <property name="username" value="scott"/>
        <property name="password" value="luogg"/>
      </dataSource>
    </environment>
    <!--Environnement de serveur-->
    <environment id="deploy">
      <transactionManager type="JDBC"></transactionManager>
      <dataSource type="POOLED">
        <property name="driver" value="oracle.jdbc.OracleDriver"/>
        <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
        <property name="username" value="scott"/>
        <property name="password" value="luogg"/>
      </dataSource>
    </environment>
  </environments>
  <!--Fichier de mapping mapper-->
  <mappers>
    <mapper resource="com/luogg/mapper/PersonMapper.xml"/>
  </mappers>
</configuration>

8.Retourner à la classe de test TestMybatis.java, accéder à l'instruction sql dans le fichier de configuration et renvoyer le jeu de résultats

package test;
import com.luogg.domain.Person;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
/**
 * Créé par luogg le 2017/2/17.
 */
public class TestMybatis {
  @Test
  public void init() throws IOException {
    /**
     * Tester la connexion à la base de données
     * 1.Définir une variable de type String nommée resource, pointant vers le fichier xml de configuration de la connexion à la base de données précédemment configuré
     * 2.Créer un flux d'entrée pour lire notre fichier de configuration de base de données
     * 3.Créer un flux d'entrée pour créer l'usine
     * 4.Ouvrir l'usine après avoir eu l'usine
     * 5.Accéder aux instructions SQL dans le fichier de configuration via session
     */
    String resource = "sqlMapConfig.xml";
    InputStream is = Resources.getResourceAsStream(resource);
    SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
    SqlSession session = factory.openSession();
    //Comment accéder aux instructions SQL dans PersonMapper.xml ?63; Espace de nom+ .id
    List<Person> list = session.selectList("com.luogg.mapper.PersonMapper.find");
    System.out.println(list.size());
    for(Person p : list){
      System.out.println(p);
    }
  }
}

Résultat d'exécution :

Ce que j'ai présenté à l'éditeur est un tutoriel d'introduction à l'apprentissage du cadre mybatis, j'espère que cela aidera les amis. Si vous avez des questions, laissez-moi un message, je répondrai à temps. Je remercie également vivement les amis de soutenir le site de tutoriels à cri!

Déclaration : le contenu de cet article est issu du réseau, propriété des auteurs respectifs, contribué et téléversé par les utilisateurs d'Internet, ce site ne détient pas de droits de propriété, n'a pas été traité par l'éditeur humain et n'assume aucune responsabilité juridique. Si vous trouvez du contenu suspect de violation de droits d'auteur, veuillez envoyer un e-mail à : notice#oldtoolbag.com (veuillez remplacer # par @ lors de l'envoi d'un e-mail pour signaler une violation, et fournir des preuves pertinentes. Une fois vérifié, ce site supprimera immédiatement le contenu suspect de violation de droits d'auteur.)

Vous pourriez aussi aimer