Inserção em Massa de Dados na Programação de Cursos

JavaBeginner
Pratique Agora

Introdução

Neste projeto, você aprenderá como inserir dados em massa em uma programação de cursos usando MyBatis, um popular framework de persistência Java. Este projeto irá guiá-lo através do processo de configuração do banco de dados, criação das tabelas necessárias e implementação da funcionalidade de inserção em massa.

👀 Pré-visualização

MyBatis bulk insert preview

🎯 Tarefas

Neste projeto, você aprenderá:

  • Como iniciar o serviço de banco de dados e criar o banco de dados MyBatisDemo e a tabela course
  • Como configurar o projeto MyBatisCourseDemo
  • Como implementar a inserção em massa de dados de cursos usando a tag <foreach> no MyBatis

🏆 Conquistas

Após concluir este projeto, você será capaz de:

  • Trabalhar com MyBatis para interagir com um banco de dados
  • Usar a tag <foreach> no MyBatis para realizar inserções de dados em massa
  • Configurar e configurar um projeto Java com MyBatis

Iniciar o Serviço de Banco de Dados e Criar a Tabela de Cursos

Nesta etapa, você aprenderá como iniciar o serviço de banco de dados, criar o banco de dados MyBatisDemo, criar a tabela course e importar os dados iniciais.

  1. Inicie o serviço de banco de dados MySQL:
cd ~/project
sudo service mysql start
  1. Crie o banco de dados MyBatisDemo e a tabela course executando o script SQL:
mysql -u root < ~/project/course.sql && rm course.sql

Este comando executará o script SQL localizado em ~/project/course.sql para criar o banco de dados e a tabela necessários. Após a execução do script, o arquivo course.sql será excluído.

Configurar o Projeto MyBatisCourseDemo

Nesta etapa, você configurará o projeto MyBatisCourseDemo, que é fornecido como base para concluir o desafio.

  1. Navegue até o diretório do projeto:
cd ~/project/MyBatisCourseDemo/

Implementar a Inserção em Massa de Dados de Cursos

Nesta etapa, você adicionará os três dados a seguir à programação do curso de uma só vez (em massa) usando a tag <foreach> no MyBatis.

  • ID do Curso: 8, Nome do Curso: Linguagem Golang, Instrutor: Amy
  • ID do Curso: 9, Nome do Curso: Oracle, Instrutor: Bob
  • ID do Curso: 10, Nome do Curso: Big Data, Instrutor: Jone
  1. Abra o arquivo CourseMapper.java no diretório /src/main/java/org/labex/mapper/ e adicione o seguinte 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 o arquivo CourseMapper.xml e adicione o seguinte 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 o arquivo MyBatisTest.java no diretório /src/test/java/org/labex/test/ e adicione o seguinte 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";
        // Load MyBatis configuration file
        Reader reader = Resources.getResourceAsReader(resource);
        // Create SqlSessionFactory
        sessionFactory = new SqlSessionFactoryBuilder().build(reader);
        // Create SqlSession object to execute SQL statements defined in the mapping files
        session = sessionFactory.openSession();
    }

    @Test
    public void testInsertCourses() {
        // Create a list of Course objects to be inserted
        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"));

        // Get the CourseMapper instance
        CourseMapper courseMapper = session.getMapper(CourseMapper.class);

        // Call the insertCourses method with the list of courses
        courseMapper.insertCourses(courses);

        // Commit the transaction
        session.commit();

        // Close the session
        session.close();
    }

}
  1. Execute o caso de teste para verificar a solução:
mvn test

Os resultados da saída referem-se ao seguinte:

Unfinished test results

Resumo

Parabéns! Você concluiu este projeto. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.

✨ Verificar Solução e Praticar✨ Verificar Solução e Praticar✨ Verificar Solução e Praticar