Insérer des données en bloc dans l'horaire de cours

JavaJavaBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce projet, vous allez apprendre à insérer des données en bloc dans un horaire de cours à l'aide de MyBatis, un framework de persistance Java populaire. Ce projet vous guidera tout au long du processus de configuration de la base de données, de création des tables nécessaires et de mise en œuvre de la fonctionnalité d'insertion en bloc.

👀 Aperçu

Aperçu de l'insertion en bloc avec MyBatis

🎯 Tâches

Dans ce projet, vous allez apprendre :

  • Comment démarrer le service de base de données et créer la base de données MyBatisDemo et la table course
  • Comment configurer le projet MyBatisCourseDemo
  • Comment implémenter l'insertion en bloc de données de cours à l'aide de la balise <foreach> dans MyBatis

🏆 Réalisations

Après avoir terminé ce projet, vous serez capable de :

  • Travailler avec MyBatis pour interagir avec une base de données
  • Utiliser la balise <foreach> dans MyBatis pour effectuer des insertions de données en bloc
  • Configurer et paramétrer un projet Java avec MyBatis

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/DataStructuresGroup(["Data Structures"]) java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java(("Java")) -.-> java/FileandIOManagementGroup(["File and I/O Management"]) java(("Java")) -.-> java/ConcurrentandNetworkProgrammingGroup(["Concurrent and Network Programming"]) java/DataStructuresGroup -.-> java/collections_methods("Collections Methods") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/classes_objects("Classes/Objects") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/jdbc("JDBC") java/FileandIOManagementGroup -.-> java/files("Files") java/FileandIOManagementGroup -.-> java/io("IO") java/ConcurrentandNetworkProgrammingGroup -.-> java/working("Working") subgraph Lab Skills java/collections_methods -.-> lab-300346{{"Insérer des données en bloc dans l'horaire de cours"}} java/classes_objects -.-> lab-300346{{"Insérer des données en bloc dans l'horaire de cours"}} java/jdbc -.-> lab-300346{{"Insérer des données en bloc dans l'horaire de cours"}} java/files -.-> lab-300346{{"Insérer des données en bloc dans l'horaire de cours"}} java/io -.-> lab-300346{{"Insérer des données en bloc dans l'horaire de cours"}} java/working -.-> lab-300346{{"Insérer des données en bloc dans l'horaire de cours"}} end

Démarrer le service de base de données et créer la table de cours

Dans cette étape, vous allez apprendre à démarrer le service de base de données, créer la base de données MyBatisDemo, créer la table course et importer les données initiales.

  1. Démarrer le service de base de données MySQL :
cd ~/projet
sudo service mysql start
  1. Créer la base de données MyBatisDemo et la table course en exécutant le script SQL :
mysql -u root < ~/projet/course.sql && rm course.sql

Cette commande exécutera le script SQL situé à ~/projet/course.sql pour créer la base de données et la table nécessaires. Après l'exécution du script, le fichier course.sql sera supprimé.

Configurer le projet MyBatisCourseDemo

Dans cette étape, vous allez configurer le projet MyBatisCourseDemo, qui est fourni comme base pour compléter le défi.

  1. Accédez au répertoire du projet :
cd ~/projet/MyBatisCourseDemo/

Implémenter l'insertion en bloc de données de cours

Dans cette étape, vous allez ajouter les trois données suivantes à l'horaire de cours d'un coup (en bloc) à l'aide de la balise <foreach> dans MyBatis.

  • Identifiant du cours : 8, Nom du cours : Langage Golang, Enseignant : Amy
  • Identifiant du cours : 9, Nom du cours : Oracle, Enseignant : Bob
  • Identifiant du cours : 10, Nom du cours : Big Data, Enseignant : Jone
  1. Ouvrez le fichier CourseMapper.java dans le répertoire /src/main/java/org/labex/mapper/ et ajoutez le code suivant :
package org.labex.mapper;

import java.util.List;

import org.labex.pojo.Course;

public interface CourseMapper {
    void insertCourses(List<Course> courses);
}
  1. Ouvrez le fichier CourseMapper.xml et ajoutez le code suivant :
<?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">
<mapper namespace="org.labex.mapper.CourseMapper">
    <insert id="insertCourses" parameterType="java.util.List">
        INSERT INTO course (cNo, cName, teacher)
        VALUES
        <foreach collection="list" item="course" separator=",">
            (#{course.cNo}, #{course.cName}, #{course.teacher})
        </foreach>
    </insert>
</mapper>
  1. Ouvrez le fichier MyBatisTest.java dans le répertoire /src/test/java/org/labex/test/ et ajoutez le code suivant :
package org.labex.test;

import java.io.IOException;
import java.io.Reader;
import java.util.ArrayList;
import java.util.List;

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.Before;
import org.junit.Test;
import org.labex.mapper.CourseMapper;
import org.labex.pojo.Course;

public class MyBatisTest {

    SqlSessionFactory sessionFactory = null;
    SqlSession session = null;

    @Before
    public void before() throws IOException {
        String resource = "mybatis-config.xml";
        // Charger le fichier de configuration MyBatis
        Reader reader = Resources.getResourceAsReader(resource);
        // Créer SqlSessionFactory
        sessionFactory = new SqlSessionFactoryBuilder().build(reader);
        // Créer un objet SqlSession pour exécuter les instructions SQL définies dans les fichiers de mapping
        session = sessionFactory.openSession();
    }

    @Test
    public void testInsertCourses() {
        // Créer une liste d'objets Course à insérer
        List<Course> courses = new ArrayList<>();
        courses.add(new Course(8, "Langage Golang", "Amy"));
        courses.add(new Course(9, "Oracle", "Bob"));
        courses.add(new Course(10, "Big Data", "Jone"));

        // Obtenir une instance de CourseMapper
        CourseMapper courseMapper = session.getMapper(CourseMapper.class);

        // Appeler la méthode insertCourses avec la liste de cours
        courseMapper.insertCourses(courses);

        // Valider la transaction
        session.commit();

        // Fermer la session
        session.close();
    }

}
  1. Exécutez le cas de test pour vérifier la solution :
mvn test

Les résultats de la sortie se réfèrent aux suivants :

Résultats de test inachevés
✨ Vérifier la solution et pratiquer

Sommaire

Félicitations ! Vous avez terminé ce projet. Vous pouvez pratiquer plus de laboratoires sur LabEx pour améliorer vos compétences.