Acerca de la inserción de datos por lotes Springboot + MySQL

Ⅰ: Dependencia: solo se requieren mysql ordinario, fuente de datos, JDBC, conexión de fuente de datos y otras dependencias, no se requieren dependencias adicionales
Ⅱ: declaración sql:

<?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="com.luntek.platform.ic_manufacturing_platform.mapper.admin.AdminMapper">

    <!--   Integer addSingleTeacher(@Param("teacher") Teacher teacher) -->
    <insert id="addSingleTeacher" parameterType="com.luntek.platform.ic_manufacturing_platform.entity.Teacher">
    insert into st_teacher (id, create_by, create_time,
      update_by, update_time, version,
      name, password, icon,
      role_id,logins)
    values (#{teacher.id,jdbcType=VARCHAR}, #{teacher.createBy,jdbcType=VARCHAR}, #{teacher.createTime,jdbcType=TIMESTAMP},
      #{teacher.updateBy,jdbcType=VARCHAR}, #{teacher.updateTime,jdbcType=TIMESTAMP}, #{teacher.version,jdbcType=INTEGER},
      #{teacher.name,jdbcType=VARCHAR}, #{teacher.password,jdbcType=VARCHAR}, #{teacher.icon,jdbcType=VARCHAR},
      #{teacher.roleId,jdbcType=VARCHAR},#{teacher.logins,jdbcType=INTEGER})
  </insert>

//批量插入语句
    <insert id="addBatchTeacher" parameterType="java.util.List">
        insert into st_teacher (id, create_by, create_time,
        update_by, update_time, version,
        name, password, icon,
        role_id,logins) values
        <foreach collection="list" item="teacher" index="index"
                 separator=",">
            (#{teacher.id,jdbcType=VARCHAR}, #{teacher.createBy,jdbcType=VARCHAR}, #{teacher.createTime,jdbcType=TIMESTAMP},
            #{teacher.updateBy,jdbcType=VARCHAR}, #{teacher.updateTime,jdbcType=TIMESTAMP}, #{teacher.version,jdbcType=INTEGER},
            #{teacher.name,jdbcType=VARCHAR}, #{teacher.password,jdbcType=VARCHAR}, #{teacher.icon,jdbcType=VARCHAR},
            #{teacher.roleId,jdbcType=VARCHAR},#{teacher.logins,jdbcType=INTEGER})
        </foreach>
    </insert>

</mapper>

Correspondencia:
Inserte la descripción de la imagen aquí
Nota: Si desea llamar al atributo del método en la inserción del lote, debe usar el valor correspondiente a la colección más un punto para obtenerlo, como se muestra en la imagen de arriba, de lo contrario se reportará la siguiente excepción:
org.mybatis.spring.MyBatisSystemException: la excepción anidada es org.apache.ibatis .binding.BindingException: No se encontró el parámetro "id". Los parámetros disponibles son [colección, lista]

Ⅲ: Interfaz del mapeador:

package com.luntek.platform.ic_manufacturing_platform.mapper.admin;

import com.luntek.platform.ic_manufacturing_platform.entity.Teacher;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author Czw
 * @Description TODO
 * @Date 2019/4/12 0012 下午 1:23
 */
@Repository
public interface AdminMapper {

    /**
     * 单个增加老师
     * @param teacher
     * @return
     */
    Integer addSingleTeacher(@Param("teacher") Teacher teacher);

    /**
     * 批量添加老师用户
     * @param list
     * @return
     */
    Integer addBatchTeacher(List<Teacher> list);

}

Ⅳ: página de prueba

package com.luntek.platform.ic_manufacturing_platform.mapper.admin;

import com.luntek.platform.ic_manufacturing_platform.entity.Teacher;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;

import static org.junit.Assert.*;

/**
 * @author Czw
 * @Description TODO
 * @Date 2019/4/12 0012 下午 3:59
 */
@RunWith(SpringRunner.class)
@SpringBootTest
@Slf4j
public class AdminMapperTest {
    @Autowired
    private AdminMapper adminMapper;

    @Test
    public void addBatchTeacher(){
        List<Teacher> list=new ArrayList<>();
        Teacher t1=new Teacher();
        t1.setId(UUID.randomUUID().toString());
        t1.setRoleId("teacher1");
        t1.setIcon("/usr/image");
        t1.setCreateBy("root");
        t1.setCreateTime(new Date());
        t1.setLogins(0);
        t1.setName("zs");
        t1.setPassword("123456");
        t1.setVersion(0);
        t1.setUpdateBy("root");
        t1.setUpdateTime(new Date());

        Teacher t2=new Teacher();
        t2.setId(UUID.randomUUID().toString());
        t2.setRoleId("teacher2");
        t2.setIcon("/usr/image");
        t2.setCreateBy("root");
        t2.setCreateTime(new Date());
        t2.setLogins(0);
        t2.setName("zs");
        t2.setPassword("123456");
        t2.setVersion(0);
        t2.setUpdateBy("root");
        t2.setUpdateTime(new Date());
        list.add(t1);
        list.add(t2);

        log.info("生效数量:",adminMapper.addBatchTeacher(list));


    }

    @Test
    public void addSingleTeacher() {
        Teacher t1=new Teacher();
        t1.setId(UUID.randomUUID().toString());
        t1.setRoleId("teacher");
        t1.setIcon("/usr/image");
        t1.setCreateBy("root");
        t1.setCreateTime(new Date());
        t1.setLogins(0);
        t1.setName("zs");
        t1.setPassword("123456");
        t1.setVersion(0);
        t1.setUpdateBy("root");
        t1.setUpdateTime(new Date());
        log.info("生效数量:{}",adminMapper.addSingleTeacher(t1));

    }

}

Ⅴ: Entidad Maestro

package com.luntek.platform.ic_manufacturing_platform.entity;

import lombok.Data;
@Data
public class Teacher extends BaseEntity{


    private static final long serialVersionUID = 662626208904211382L;
     private String id;
    private String createBy;
    private Date createTime;
    private String updateBy;
    private Date updateTime;
    private Integer version;
    private Integer logins;

    private String name;

    private String password;

    private String icon;

    private String roleId;
}

Ⅵ: Termina aquí

El resto de tu vida aún es larga, no seas melancólico; la creación no es fácil, solo hazlo y vete

Supongo que te gusta

Origin blog.csdn.net/qq_42910468/article/details/89247999
Recomendado
Clasificación