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

🎯 Tareas
En este proyecto, aprenderá:
- Cómo iniciar el servicio de base de datos y crear la base de datos
MyBatisDemoy la tablacourse - 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.
- Iniciar el servicio de base de datos MySQL:
cd ~/project
sudo service mysql start
- Crear la base de datos
MyBatisDemoy la tablacourseejecutando 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.
- 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
- Abra el archivo
CourseMapper.javaen 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);
}
- Abra el archivo
CourseMapper.xmly 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>
- Abra el archivo
MyBatisTest.javaen 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();
}
}
- Ejecute el caso de prueba para verificar la solución:
mvn test
Los resultados de la salida se refieren a lo siguiente:

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



