Einführung
In diesem Projekt lernst du, wie du MyBatis verwendest, um verschiedene Operationen auf einer Kurs-Tabelle durchzuführen, einschließlich des Abfragens von Kursinformationen, des Aktualisierens des Kurslehrers und des Batch-Abfragens von Kursdaten.
👀 Vorschau



🎯 Aufgaben
In diesem Projekt wirst du lernen:
- Wie du dynamische SQL verwendest, um Kursinformationen abzufragen, deren Kursname mit einem Großbuchstaben "C" beginnt
- Wie du dynamische SQL verwendest, um den Lehrenden eines bestimmten Kurses zu aktualisieren, während die anderen unverändert bleiben
- Wie du dynamische SQL verwendest, um die Kursinformationen mit einer Liste von Kursnummern in Batch abzufragen
🏆 Errungenschaften
Nach Abschluss dieses Projekts wirst du in der Lage sein:
- MyBatis-Eingabe- und Ausgabeparameter zu verwenden
- Dynamische SQL in MyBatis zu implementieren
- Ergebniszuordnung verwenden, um die Ergebnismengezuordnung anzugeben
- Das
<foreach>-Tag für Batch-Abfragen zu verwenden
Kursinformationen abfragen
In diesem Schritt lernst du, wie du dynamische SQL verwendest, um die Kursinformationen abzufragen, deren Kursname mit einem Großbuchstaben "C" beginnt.
Öffnen Sie die Datei
CourseMapper.javaim Verzeichnis/org/lanqiao/mapper/.Implementieren Sie die Methode
selectCoursesin der SchnittstelleCourseMapper. Diese Methode sollte einen Parameter vom TypMap<String, Object>akzeptieren, um die Eingabeparameter zu speichern.
List<Course> selectCourses(Map<String, Object> params);
Öffnen Sie die Datei
CourseMapper.xmlim Verzeichnis/org/lanqiao/mapper/.Implementieren Sie die SQL-Anweisung
selectCoursesim NamensraumCourseMapper. Verwenden Sie dynamische SQL, um zu überprüfen, ob der ParametercourseNameleer ist. Wenn er nicht leer ist, fügen Sie eine Bedingung hinzu, um die Kursnamen zu filtern, die mit einem Großbuchstaben "C" beginnen.
<select id="selectCourses" resultMap="courseResultMap" parameterType="java.util.Map">
SELECT * FROM course
<where>
<if test="courseName!= null and courseName!= ''">
AND cName LIKE #{courseName}
</if>
</where>
</select>
- Definieren Sie das
courseResultMapin der DateiCourseMapper.xml, um die Ergebnismengezuordnung anzugeben.
<resultMap id="courseResultMap" type="org.lanqiao.pojo.Course">
<id property="cNo" column="cNo"/>
<result property="cName" column="cName"/>
<result property="teacher" column="teacher"/>
</resultMap>
Öffnen Sie die Datei
MyBatisTest.javaim Verzeichnis/org/lanqiao/test/.Implementieren Sie die Testmethode
testSelectCourses, um die Funktionalität vonselectCourseszu testen.
@Test
public void testSelectCourses() {
CourseMapper mapper = session.getMapper(CourseMapper.class);
Map<String, Object> params = new HashMap<>();
params.put("courseName", "C%");
List<Course> courses = mapper.selectCourses(params);
System.out.println(courses);
}
Kurslehrer aktualisieren
In diesem Schritt lernst du, wie du dynamische SQL verwendest, um den Kurslehrer des Kurses mit der Kursnummer "7" auf "Blue" zu aktualisieren.
Öffnen Sie die Datei
CourseMapper.javaim Verzeichnis/org/lanqiao/mapper/.Implementieren Sie die Methode
updateTeacherin der SchnittstelleCourseMapper. Diese Methode sollte einen Parameter vom TypMap<String, Object>akzeptieren, um die Eingabeparameter zu speichern.
void updateTeacher(Map<String, Object> params);
Öffnen Sie die Datei
CourseMapper.xmlim Verzeichnis/org/lanqiao/mapper/.Implementieren Sie die SQL-Anweisung
updateTeacherim NamensraumCourseMapper. Verwenden Sie dynamische SQL, um zu überprüfen, ob der ParameterteacherNameleer ist. Wenn er nicht leer ist, aktualisieren Sie die Spalteteacherfür den Kurs mit der angegebenencourseId.
<update id="updateTeacher" parameterType="java.util.Map">
UPDATE course
<set>
<if test="teacherName!= null and teacherName!= ''">
teacher = #{teacherName},
</if>
</set>
WHERE cNo = #{courseId}
</update>
Öffnen Sie die Datei
MyBatisTest.javaim Verzeichnis/org/lanqiao/test/.Implementieren Sie die Testmethode
testUpdateTeacher, um die Funktionalität vonupdateTeacherzu testen.
@Test
public void testUpdateTeacher() {
CourseMapper mapper = session.getMapper(CourseMapper.class);
Map<String, Object> params = new HashMap<>();
params.put("courseId", 7);
params.put("teacherName", " Blue");
mapper.updateTeacher(params);
session.commit();
}
Kursinformationen in Batch abfragen
In diesem Schritt lernst du, wie du dynamische SQL verwendest, um die Kursinformationen mit den Kursnummern "1,2,3" im Batch abzufragen.
Öffnen Sie die Datei
CourseMapper.javaim Verzeichnis/org/lanqiao/mapper/.Implementieren Sie die Methode
selectCoursesByIdsin der SchnittstelleCourseMapper. Diese Methode sollte einen Parameter vom TypMap<String, Object>akzeptieren, um die Eingabeparameter zu speichern.
List<Map<String, Object>> selectCoursesByIds(Map<String, Object> params);
Öffnen Sie die Datei
CourseMapper.xmlim Verzeichnis/org/lanqiao/mapper/.Implementieren Sie die SQL-Anweisung
selectCoursesByIdsim NamensraumCourseMapper. Verwenden Sie das<foreach>-Tag, um über die Listeidszu iterieren und die IN-Klausel zu erstellen.
<select id="selectCoursesByIds" resultMap="courseResultMap" parameterType="java.util.Map">
SELECT * FROM course WHERE cNo IN
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>
Öffnen Sie die Datei
MyBatisTest.javaim Verzeichnis/org/lanqiao/test/.Implementieren Sie die Testmethode
testSelectCoursesByIds, um die Funktionalität vonselectCoursesByIdszu testen.
@Test
public void testSelectCoursesByIds() {
CourseMapper mapper = session.getMapper(CourseMapper.class);
List<Integer> ids = Arrays.asList(1, 2, 3);
Map<String, Object> params = new HashMap<>();
params.put("ids", ids);
List<Map<String, Object>> coursesByIds = mapper.selectCoursesByIds(params);
System.out.println(coursesByIds);
}
Ausführen
Um sicherzustellen, dass der Code funktioniert, achten Sie darauf, die relevanten Klassen in den Code einzufügen.
CourseMapper.java:
import org.lanqiao.pojo.Course;
import java.util.List;
import java.util.Map;
MyBatisTest.java:
import java.util.Arrays;
import java.util.HashMap;
Schließlich können Sie den Code in der Konsole kompilieren und ausführen und die Testdateien mit Maven überprüfen, indem Sie die folgenden Befehle verwenden:
cd MyBatisCourseDemo03
mvn test
Sie können sich auf 👀 Vorschau für eine ausführende Darstellung beziehen.
Zusammenfassung
Herzlichen Glückwunsch! Du hast dieses Projekt abgeschlossen. Du kannst in LabEx weitere Übungen absolvieren, um deine Fähigkeiten zu verbessern.



