Inserción masiva de datos en la programación de cursos

JavaBeginner
Practicar Ahora

Introducción

En este proyecto, aprenderá a insertar datos en masa en una programación de cursos utilizando MyBatis, un popular marco de persistencia Java. Este proyecto lo guiará a través del proceso de configurar la base de datos, crear las tablas necesarias e implementar la funcionalidad de inserción en masa.

👀 Vista previa

Vista previa de inserción en masa de MyBatis

🎯 Tareas

En este proyecto, aprenderá:

  • Cómo iniciar el servicio de base de datos y crear la base de datos MyBatisDemo y la tabla course
  • Cómo configurar el proyecto MyBatisCourseDemo
  • Cómo implementar la inserción en masa de datos de cursos utilizando la etiqueta <foreach> en MyBatis

🏆 Logros

Después de completar este proyecto, podrá:

  • Trabajar con MyBatis para interactuar con una base de datos
  • Utilizar la etiqueta <foreach> en MyBatis para realizar inserciones de datos en masa
  • Configurar y configurar un proyecto Java con MyBatis

Iniciar el servicio de base de datos y crear la tabla de cursos

En este paso, aprenderá a iniciar el servicio de base de datos, crear la base de datos MyBatisDemo, crear la tabla course e importar los datos iniciales.

  1. Iniciar el servicio de base de datos MySQL:
cd ~/project
sudo service mysql start
  1. Crear la base de datos MyBatisDemo y la tabla course ejecutando el script SQL:
mysql -u root < ~/project/course.sql && rm course.sql

Este comando ejecutará el script SQL ubicado en ~/project/course.sql para crear la base de datos y la tabla necesarias. Después de que se ejecute el script, el archivo course.sql se eliminará.

Configurar el proyecto MyBatisCourseDemo

En este paso, configurará el proyecto MyBatisCourseDemo, que se proporciona como base para completar el desafío.

  1. Navegue hasta el directorio del proyecto:
cd ~/project/MyBatisCourseDemo/

Implementar la inserción masiva de datos de cursos

En este paso, agregará los siguientes tres datos a la programación de cursos a la vez (en masa) utilizando la etiqueta <foreach> en MyBatis.

  • ID del curso: 8, Nombre del curso: Golang Language, Instructor: Amy
  • ID del curso: 9, Nombre del curso: Oracle, Instructor: Bob
  • ID del curso: 10, Nombre del curso: Big Data, Instructor: Jone
  1. Abra el archivo CourseMapper.java en el directorio /src/main/java/org/labex/mapper/ y agregue el siguiente código:
package org.labex.mapper;

import java.util.List;

import org.labex.pojo.Course;

public interface CourseMapper {
    void insertCourses(List<Course> courses);
}
  1. Abra el archivo CourseMapper.xml y agregue el siguiente código:
<?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. Abra el archivo MyBatisTest.java en el directorio /src/test/java/org/labex/test/ y agregue el siguiente código:
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";
        // Cargar el archivo de configuración de MyBatis
        Reader reader = Resources.getResourceAsReader(resource);
        // Crear SqlSessionFactory
        sessionFactory = new SqlSessionFactoryBuilder().build(reader);
        // Crear objeto SqlSession para ejecutar las instrucciones SQL definidas en los archivos de mapeo
        session = sessionFactory.openSession();
    }

    @Test
    public void testInsertCourses() {
        // Crear una lista de objetos Course a insertar
        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"));

        // Obtener la instancia de CourseMapper
        CourseMapper courseMapper = session.getMapper(CourseMapper.class);

        // Llamar al método insertCourses con la lista de cursos
        courseMapper.insertCourses(courses);

        // Confirmar la transacción
        session.commit();

        // Cerrar la sesión
        session.close();
    }

}
  1. Ejecute el caso de prueba para verificar la solución:
mvn test

Los resultados de la salida se refieren a lo siguiente:

Resultados de prueba incompletos

Resumen

¡Felicidades! Has completado este proyecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.

✨ Revisar Solución y Practicar✨ Revisar Solución y Practicar✨ Revisar Solución y Practicar