Массовая вставка данных в расписание курсов

JavaBeginner
Практиковаться сейчас

Введение

В этом проекте вы научитесь массово вставлять данные в расписание курсов с использованием MyBatis, популярного Java-фреймворка для работы с данными. В этом проекте вас проведут через процесс настройки базы данных, создания необходимых таблиц и реализации функционала массовой вставки.

👀 Предварительный просмотр

Предварительный просмотр массовой вставки MyBatis

🎯 Задачи

В этом проекте вы научитесь:

  • Как запустить службу базы данных и создать базу данных MyBatisDemo и таблицу course
  • Как настроить проект MyBatisCourseDemo
  • Как реализовать массовую вставку данных по курсам с использованием тега <foreach> в MyBatis

🏆 Достижения

После завершения этого проекта вы сможете:

  • Работать с MyBatis для взаимодействия с базой данных
  • Использовать тег <foreach> в MyBatis для выполнения массовой вставки данных
  • Настраивать и настраивать Java-проект с MyBatis

Запустите службу базы данных и создайте таблицу курсов

В этом шаге вы научитесь запускать службу базы данных, создавать базу данных MyBatisDemo, создавать таблицу course и импортировать начальные данные.

  1. Запустите службу базы данных MySQL:
cd ~/project
sudo service mysql start
  1. Создайте базу данных MyBatisDemo и таблицу course, выполнив SQL-скрипт:
mysql -u root < ~/project/course.sql && rm course.sql

Эта команда выполнит SQL-скрипт, расположенный по адресу ~/project/course.sql, для создания необходимой базы данных и таблицы. После выполнения скрипта файл course.sql будет удален.

Настройте проект MyBatisCourseDemo

В этом шаге вы настроите проект MyBatisCourseDemo, который предоставляется в качестве основы для решения задачи.

  1. Перейдите в каталог проекта:
cd ~/project/MyBatisCourseDemo/

Реализуйте массовую вставку данных по курсам

В этом шаге вы добавите следующие три записи в расписание курсов сразу (массово) с использованием тега <foreach> в MyBatis.

  • ID курса: 8, Название курса: Golang Language, Преподаватель: Amy
  • ID курса: 9, Название курса: Oracle, Преподаватель: Bob
  • ID курса: 10, Название курса: Big Data, Преподаватель: Jone
  1. Откройте файл CourseMapper.java в директории /src/main/java/org/labex/mapper/ и добавьте следующий код:
package org.labex.mapper;

import java.util.List;

import org.labex.pojo.Course;

public interface CourseMapper {
    void insertCourses(List<Course> courses);
}
  1. Откройте файл CourseMapper.xml и добавьте следующий код:
<?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. Откройте файл MyBatisTest.java в директории /src/test/java/org/labex/test/ и добавьте следующий код:
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";
        // Загрузите файл конфигурации MyBatis
        Reader reader = Resources.getResourceAsReader(resource);
        // Создайте SqlSessionFactory
        sessionFactory = new SqlSessionFactoryBuilder().build(reader);
        // Создайте объект SqlSession для выполнения SQL-операций, определенных в файлах маппинга
        session = sessionFactory.openSession();
    }

    @Test
    public void testInsertCourses() {
        // Создайте список объектов Course для вставки
        List<Course> courses = new ArrayList<>();
        courses.add(new Course(8, "Golang Language", "Amy"));
        courses.add(new Course(9, "Oracle", "Bob"));
        courses.add(new Course(10, "Big Data", "Jone"));

        // Получите экземпляр CourseMapper
        CourseMapper courseMapper = session.getMapper(CourseMapper.class);

        // Вызовите метод insertCourses со списком курсов
        courseMapper.insertCourses(courses);

        // Подтвердите транзакцию
        session.commit();

        // Закройте сессию
        session.close();
    }

}
  1. Запустите тестовый случай, чтобы проверить решение:
mvn test

Результаты вывода соответствуют следующим:

Результаты не завершенных тестов

Резюме

Поздравляем! Вы завершили этот проект. Вы можете практиковаться в более многих лабораторных работах в LabEx, чтобы улучшить свои навыки.

✨ Проверить решение и практиковаться✨ Проверить решение и практиковаться✨ Проверить решение и практиковаться