Dans ce projet, vous allez apprendre à effectuer des opérations CRUD (Create, Read, Update, Delete) sur une table de planning de cours à l'aide de MyBatis, un populaire framework de persistance Java.
👀 Aperçu
🎯 Tâches
Dans ce projet, vous allez apprendre :
Comment configurer le projet et installer les dépendances nécessaires
Comment améliorer la classe d'entité Course en ajoutant des propriétés, des constructeurs, des méthodes setter/getter et autres éléments
Comment améliorer le fichier de configuration MyBatis mybatis-config.xml
Comment implémenter l'interface CourseMapper et ses méthodes correspondantes
Comment implémenter la carte SQL dans le fichier CourseMapper.xml
Comment implémenter les cas de test dans le fichier MyBatisTest.java
🏆 Réalisations
Après avoir terminé ce projet, vous serez capable de :
Utiliser MyBatis pour interagir avec une base de données MySQL
Définir des classes d'entité et configurer les fichiers de mappage MyBatis
Implémenter des opérations CRUD à l'aide de MyBatis
Écrire des tests unitaires pour vérifier la fonctionnalité de l'application
Skills Graph
%%%%{init: {'theme':'neutral'}}%%%%
flowchart RL
javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"])
javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"])
javascript(("JavaScript")) -.-> javascript/DOMManipulationGroup(["DOM Manipulation"])
javascript(("JavaScript")) -.-> javascript/NetworkingGroup(["Networking"])
javascript/BasicConceptsGroup -.-> javascript/functions("Functions")
javascript/BasicConceptsGroup -.-> javascript/obj_manip("Object Manipulation")
javascript/AdvancedConceptsGroup -.-> javascript/oop("Object-Oriented Programming")
javascript/AdvancedConceptsGroup -.-> javascript/error_handle("Error Handling")
javascript/DOMManipulationGroup -.-> javascript/dom_manip("DOM Manipulation")
javascript/NetworkingGroup -.-> javascript/http_req("HTTP Requests")
javascript/NetworkingGroup -.-> javascript/json("JSON")
javascript/NetworkingGroup -.-> javascript/api_interact("API Interaction")
subgraph Lab Skills
javascript/functions -.-> lab-300354{{"Gestion des opérations CRUD sur l'emploi du temps des cours avec MyBatis"}}
javascript/obj_manip -.-> lab-300354{{"Gestion des opérations CRUD sur l'emploi du temps des cours avec MyBatis"}}
javascript/oop -.-> lab-300354{{"Gestion des opérations CRUD sur l'emploi du temps des cours avec MyBatis"}}
javascript/error_handle -.-> lab-300354{{"Gestion des opérations CRUD sur l'emploi du temps des cours avec MyBatis"}}
javascript/dom_manip -.-> lab-300354{{"Gestion des opérations CRUD sur l'emploi du temps des cours avec MyBatis"}}
javascript/http_req -.-> lab-300354{{"Gestion des opérations CRUD sur l'emploi du temps des cours avec MyBatis"}}
javascript/json -.-> lab-300354{{"Gestion des opérations CRUD sur l'emploi du temps des cours avec MyBatis"}}
javascript/api_interact -.-> lab-300354{{"Gestion des opérations CRUD sur l'emploi du temps des cours avec MyBatis"}}
end
Configure the Project
Dans cette étape, vous allez apprendre à configurer le projet et à installer les dépendances nécessaires.
Ouvrez le fichier pom.xml dans le projet MyBatisCourseDemo02.
Ajoutez les dépendances suivantes à la section <dependencies> :
<!-- MyBatis jar -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.6</version>
</dependency>
<!-- MySQL database driver jar -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
Ajoutez les propriétés suivantes à la section <properties> pour configurer l'encodage des caractères et la version de JDK :
Dans cette étape, vous allez améliorer la classe d'entité Course en ajoutant des propriétés, des constructeurs, des méthodes setter/getter et autres éléments.
Ouvrez le fichier Course.java dans le répertoire /src/main/java/org/labex/pojo.
Ajoutez les propriétés suivantes à la classe Course :
private int cNo;
private String cName;
private String teacher;
Dans cette étape, vous allez implémenter l'interface CourseMapper et ses méthodes correspondantes.
Ouvrez le fichier CourseMapper.java dans le package org.labex.mapper.
Ajoutez les méthodes suivantes à l'interface CourseMapper :
import java.util.List;
import org.labex.pojo.Course;
public interface CourseMapper {
/**
* Interroger toutes les informations sur les cours
*/
public List<Course> queryAllCourse();
/**
* Insérer un nouveau cours
* @param course
*/
public int insertCourse(Course course);
/**
* Mettre à jour les informations d'un cours
* @param course
*/
public int updateCourse(Course course);
/**
* Supprimer les informations d'un cours par numéro de cours
* @param course
*/
public int deleteCourse(int cNo);
}
Implémenter la mappage SQL
Dans cette étape, vous allez implémenter le mappage SQL dans le fichier CourseMapper.xml.
Ouvrez le fichier CourseMapper.xml dans le répertoire src/main/java/org/labex/mapper.
Ajoutez les instructions de mappage SQL suivantes :
<!-- Récupérer toutes les informations sur les cours -->
<select id="queryAllCourse" resultType="org.labex.pojo.Course">
select * from course
</select>
<!-- Insérer un nouveau cours -->
<insert id="insertCourse" parameterType="org.labex.pojo.Course">
insert into course(cNo,cName,teacher)
values(#{cNo},#{cName},#{teacher})
</insert>
<!-- Mettre à jour les informations sur un cours en fonction du numéro de cours -->
<update id="updateCourse" parameterType="org.labex.pojo.Course">
update course set cName=#{cName},teacher=#{teacher}
where cNo=#{cNo}
</update>
<!-- Supprimer les informations sur un cours en fonction du numéro de cours -->
<delete id="deleteCourse" parameterType="int">
delete from course where cNo=#{cNo}
</delete>
Implémenter les cas de test
Dans cette étape, vous allez implémenter les cas de test dans le fichier MyBatisTest.java.
Ouvrez le fichier MyBatisTest.java dans le répertoire /src/test/java/org/labex/test.
Ajoutez les méthodes de test suivantes :
import java.io.IOException;
import java.io.Reader;
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 la factory SqlSession
sessionFactory = new SqlSessionFactoryBuilder().build(reader);
// Créer un objet SqlSession capable d'exécuter les instructions SQL dans les fichiers de mappage SQL
session = sessionFactory.openSession();
}
@Test
public void testSel() throws IOException{
// Appeler la méthode getMapper() dans session pour retourner l'objet d'interface
CourseMapper cMapper = session.getMapper(CourseMapper.class);
// Effectuer une requête et retourner tous les objets Course
List<Course> courses = cMapper.queryAllCourse();
System.out.println(courses);
session.close();
}
@Test
public void testIns() throws IOException{
// Appeler la méthode getMapper() dans session pour retourner l'objet d'interface
CourseMapper cMapper = session.getMapper(CourseMapper.class);
Course course = new Course(8,"Artificial Intelligence","Tom");
int i = cMapper.insertCourse(course);
session.commit();
System.out.println((i!=0? "Données ajoutées avec succès":"Échec de l'ajout des données"));
session.close();
}
@Test
public void testUpd() throws IOException{
// Appeler la méthode getMapper() dans session pour retourner l'objet d'interface
CourseMapper cMapper = session.getMapper(CourseMapper.class);
Course course = new Course(1,"Software Testing","Jack");
int i = cMapper.updateCourse(course);
session.commit();
System.out.println((i!=0? "Données mises à jour avec succès":"Échec de la mise à jour des données"));
session.close();
}
@Test
public void testDEl() throws IOException{
// Appeler la méthode getMapper() dans session pour retourner l'objet d'interface
CourseMapper cMapper = session.getMapper(CourseMapper.class);
int i = cMapper.deleteCourse(7);
session.commit();
System.out.println((i!=0? "Données supprimées avec succès":"Échec de la suppression des données"));
session.close();
}
}
Après avoir effectué ces étapes, vous avez configuré avec succès le projet, amélioré la classe d'entité, configuré les paramètres MyBatis, implémenté l'interface CourseMapper et implémenté les cas de test. Vous pouvez maintenant exécuter les tests pour vérifier la fonctionnalité de l'application.
Exécution
Ensuite, compilez et exécutez dans le terminal, et utilisez Maven pour vérifier les fichiers de test :
cd MyBatisCourseDemo02
mvn test
Vous pouvez vous référer aux étapes suivantes pour vérifier les résultats du défi.
We use cookies for a number of reasons, such as keeping the website reliable and secure, to improve your experience on our website and to see how you interact with it. By accepting, you agree to our use of such cookies. Privacy Policy