Ⅰ: 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:
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