Mehrfaches Einfügen von Daten in den Kursplan

JavaJavaBeginner
Jetzt üben

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

Einführung

In diesem Projekt lernen Sie, wie Sie mit MyBatis, einem beliebten Java-Persistence-Framework, Daten in einen Kursplan in großen Mengen einfügen. Dieses Projekt führt Sie durch den Prozess des Einrichtens der Datenbank, Erstellen der erforderlichen Tabellen und Implementieren der Funktionalität zum Einfügen von Daten in großen Mengen.

👀 Vorschau

Vorschau auf das Einfügen von Daten in großen Mengen mit MyBatis

🎯 Aufgaben

In diesem Projekt lernen Sie:

  • Wie Sie den Datenbankdienst starten und die Datenbank MyBatisDemo und die Tabelle course erstellen
  • Wie Sie das Projekt MyBatisCourseDemo einrichten
  • Wie Sie die Einfügung von Kursdaten in großen Mengen mit dem <foreach>-Tag in MyBatis implementieren

🏆 Errungenschaften

Nach Abschluss dieses Projekts werden Sie in der Lage sein:

  • Mit MyBatis interagieren, um mit einer Datenbank zu arbeiten
  • Den <foreach>-Tag in MyBatis verwenden, um das Einfügen von Daten in großen Mengen durchzuführen
  • Ein Java-Projekt mit MyBatis einrichten und konfigurieren

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{{"Mehrfaches Einfügen von Daten in den Kursplan"}} java/classes_objects -.-> lab-300346{{"Mehrfaches Einfügen von Daten in den Kursplan"}} java/jdbc -.-> lab-300346{{"Mehrfaches Einfügen von Daten in den Kursplan"}} java/files -.-> lab-300346{{"Mehrfaches Einfügen von Daten in den Kursplan"}} java/io -.-> lab-300346{{"Mehrfaches Einfügen von Daten in den Kursplan"}} java/working -.-> lab-300346{{"Mehrfaches Einfügen von Daten in den Kursplan"}} end

Starte den Datenbankdienst und erstelle die Kurs-Tabelle

In diesem Schritt lernen Sie, wie Sie den Datenbankdienst starten, die Datenbank MyBatisDemo erstellen, die Tabelle course erstellen und die initialen Daten importieren.

  1. Starte den MySQL-Datenbankdienst:
cd ~/project
sudo service mysql start
  1. Erstelle die Datenbank MyBatisDemo und die Tabelle course, indem Sie das SQL-Skript ausführen:
mysql -u root < ~/project/course.sql && rm course.sql

Dieser Befehl führt das SQL-Skript, das sich im Verzeichnis ~/project/course.sql befindet, aus, um die erforderliche Datenbank und Tabelle zu erstellen. Nachdem das Skript ausgeführt wurde, wird die Datei course.sql gelöscht.

Richte das Projekt MyBatisCourseDemo ein

In diesem Schritt richten Sie das Projekt MyBatisCourseDemo ein, das als Grundlage zum Bewältigen der Herausforderung zur Verfügung gestellt wird.

  1. Navigiere zum Projektverzeichnis:
cd ~/project/MyBatisCourseDemo/

Implementiere das Einfügen von Kursdaten in großen Mengen

In diesem Schritt fügen Sie die folgenden drei Datensätze gleichzeitig (in großen Mengen) in den Kursplan hinzu, indem Sie das <foreach>-Tag in MyBatis verwenden.

  • Kurs-ID: 8, Kursname: Golang-Sprache, Dozent: Amy
  • Kurs-ID: 9, Kursname: Oracle, Dozent: Bob
  • Kurs-ID: 10, Kursname: Big Data, Dozent: Jone
  1. Öffnen Sie die Datei CourseMapper.java im Verzeichnis /src/main/java/org/labex/mapper/ und fügen Sie den folgenden Code hinzu:
package org.labex.mapper;

import java.util.List;

import org.labex.pojo.Course;

public interface CourseMapper {
    void insertCourses(List<Course> courses);
}
  1. Öffnen Sie die Datei CourseMapper.xml und fügen Sie den folgenden Code hinzu:
<?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. Öffnen Sie die Datei MyBatisTest.java im Verzeichnis /src/test/java/org/labex/test/ und fügen Sie den folgenden Code hinzu:
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";
        // Lade die MyBatis-Konfigurationsdatei
        Reader reader = Resources.getResourceAsReader(resource);
        // Erstelle eine SqlSessionFactory
        sessionFactory = new SqlSessionFactoryBuilder().build(reader);
        // Erstelle ein SqlSession-Objekt, um SQL-Anweisungen aus den Mapping-Dateien auszuführen
        session = sessionFactory.openSession();
    }

    @Test
    public void testInsertCourses() {
        // Erstelle eine Liste von Course-Objekten, die eingefügt werden sollen
        List<Course> courses = new ArrayList<>();
        courses.add(new Course(8, "Golang-Sprache", "Amy"));
        courses.add(new Course(9, "Oracle", "Bob"));
        courses.add(new Course(10, "Big Data", "Jone"));

        // Holen Sie sich die CourseMapper-Instanz
        CourseMapper courseMapper = session.getMapper(CourseMapper.class);

        // Rufen Sie die insertCourses-Methode mit der Liste der Kurse auf
        courseMapper.insertCourses(courses);

        // Bestätigen Sie die Transaktion
        session.commit();

        // Schließen Sie die Sitzung
        session.close();
    }

}
  1. Führen Sie den Testfall aus, um die Lösung zu überprüfen:
mvn test

Die Ausgabenergebnisse verweisen auf Folgendes:

Unfertige Testergebnisse
✨ Lösung prüfen und üben

Zusammenfassung

Herzlichen Glückwunsch! Sie haben dieses Projekt abgeschlossen. Sie können in LabEx weitere Übungen absolvieren, um Ihre Fähigkeiten zu verbessern.