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

🎯 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
MyBatisDemoet la tablecourse - 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
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.
- Démarrer le service de base de données MySQL :
cd ~/projet
sudo service mysql start
- Créer la base de données
MyBatisDemoet la tablecourseen 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.
- Accédez au répertoire du projet :
cd ~/projet/MyBatisCourseDemo/
Mettre en œuvre 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
- Ouvrez le fichier
CourseMapper.javadans 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);
}
- Ouvrez le fichier
CourseMapper.xmlet 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>
- Ouvrez le fichier
MyBatisTest.javadans 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();
}
}
- 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ésumé
Félicitations ! Vous avez terminé ce projet. Vous pouvez pratiquer plus de laboratoires sur LabEx pour améliorer vos compétences.



