Kursentabelle bedienen

JavaScriptJavaScriptBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

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

Beispiel für die Abfrage der Kurs-Tabelle
Beispiel für dynamische SQL in MyBatis
Beispiel für die Batch-Abfrage

🎯 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

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/obj_manip("Object Manipulation") javascript/AdvancedConceptsGroup -.-> javascript/error_handle("Error Handling") javascript/DOMManipulationGroup -.-> javascript/dom_select("DOM Selection") javascript/DOMManipulationGroup -.-> javascript/dom_manip("DOM Manipulation") javascript/DOMManipulationGroup -.-> javascript/dom_traverse("DOM Traversal") javascript/NetworkingGroup -.-> javascript/http_req("HTTP Requests") javascript/NetworkingGroup -.-> javascript/json("JSON") javascript/NetworkingGroup -.-> javascript/api_interact("API Interaction") subgraph Lab Skills javascript/obj_manip -.-> lab-300384{{"Kursentabelle bedienen"}} javascript/error_handle -.-> lab-300384{{"Kursentabelle bedienen"}} javascript/dom_select -.-> lab-300384{{"Kursentabelle bedienen"}} javascript/dom_manip -.-> lab-300384{{"Kursentabelle bedienen"}} javascript/dom_traverse -.-> lab-300384{{"Kursentabelle bedienen"}} javascript/http_req -.-> lab-300384{{"Kursentabelle bedienen"}} javascript/json -.-> lab-300384{{"Kursentabelle bedienen"}} javascript/api_interact -.-> lab-300384{{"Kursentabelle bedienen"}} end

Kursinformationen abfragen

In diesem Schritt lernst du, wie du dynamische SQL verwendest, um die Kursinformationen abzufragen, deren Kursname mit einem Großbuchstaben "C" beginnt.

  1. Öffnen Sie die Datei CourseMapper.java im Verzeichnis /org/lanqiao/mapper/.

  2. Implementieren Sie die Methode selectCourses in der Schnittstelle CourseMapper. Diese Methode sollte einen Parameter vom Typ Map<String, Object> akzeptieren, um die Eingabeparameter zu speichern.

List<Course> selectCourses(Map<String, Object> params);
  1. Öffnen Sie die Datei CourseMapper.xml im Verzeichnis /org/lanqiao/mapper/.

  2. Implementieren Sie die SQL-Anweisung selectCourses im Namensraum CourseMapper. Verwenden Sie dynamische SQL, um zu überprüfen, ob der Parameter courseName leer 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>
  1. Definieren Sie das courseResultMap in der Datei CourseMapper.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>
  1. Öffnen Sie die Datei MyBatisTest.java im Verzeichnis /org/lanqiao/test/.

  2. Implementieren Sie die Testmethode testSelectCourses, um die Funktionalität von selectCourses zu 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.

  1. Öffnen Sie die Datei CourseMapper.java im Verzeichnis /org/lanqiao/mapper/.

  2. Implementieren Sie die Methode updateTeacher in der Schnittstelle CourseMapper. Diese Methode sollte einen Parameter vom Typ Map<String, Object> akzeptieren, um die Eingabeparameter zu speichern.

void updateTeacher(Map<String, Object> params);
  1. Öffnen Sie die Datei CourseMapper.xml im Verzeichnis /org/lanqiao/mapper/.

  2. Implementieren Sie die SQL-Anweisung updateTeacher im Namensraum CourseMapper. Verwenden Sie dynamische SQL, um zu überprüfen, ob der Parameter teacherName leer ist. Wenn er nicht leer ist, aktualisieren Sie die Spalte teacher für den Kurs mit der angegebenen courseId.

<update id="updateTeacher" parameterType="java.util.Map">
    UPDATE course
    <set>
        <if test="teacherName!= null and teacherName!= ''">
            teacher = #{teacherName},
        </if>
    </set>
    WHERE cNo = #{courseId}
</update>
  1. Öffnen Sie die Datei MyBatisTest.java im Verzeichnis /org/lanqiao/test/.

  2. Implementieren Sie die Testmethode testUpdateTeacher, um die Funktionalität von updateTeacher zu 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 im Batch abfragen

In diesem Schritt lernst du, wie du dynamische SQL verwendest, um die Kursinformationen mit den Kursnummern "1,2,3" im Batch abzufragen.

  1. Öffnen Sie die Datei CourseMapper.java im Verzeichnis /org/lanqiao/mapper/.

  2. Implementieren Sie die Methode selectCoursesByIds in der Schnittstelle CourseMapper. Diese Methode sollte einen Parameter vom Typ Map<String, Object> akzeptieren, um die Eingabeparameter zu speichern.

List<Map<String, Object>> selectCoursesByIds(Map<String, Object> params);
  1. Öffnen Sie die Datei CourseMapper.xml im Verzeichnis /org/lanqiao/mapper/.

  2. Implementieren Sie die SQL-Anweisung selectCoursesByIds im Namensraum CourseMapper. Verwenden Sie das <foreach>-Tag, um über die Liste ids zu 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>
  1. Öffnen Sie die Datei MyBatisTest.java im Verzeichnis /org/lanqiao/test/.

  2. Implementieren Sie die Testmethode testSelectCoursesByIds, um die Funktionalität von selectCoursesByIds zu 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.

✨ Lösung prüfen und üben

Zusammenfassung

Herzlichen Glückwunsch! Du hast dieses Projekt abgeschlossen. Du kannst in LabEx weitere Übungen absolvieren, um deine Fähigkeiten zu verbessern.