mybatis批量数据插入:
Person.java
@Data
public class Person {
private Integer id;
private String userName;
private String email;
private String gender;
private String dept_id;
public Person(String userName ,String email,String gender){
this.userName = userName;
this.email = email;
this.gender = gender;
}
@Override
public String toString() {
return "Person{" +
"id=" + id +
", userName='" + userName + '\'' +
", email='" + email + '\'' +
", gender='" + gender + '\'' +
", dept_id='" + dept_id + '\'' +
'}';
}
}
PersonMapper.java
@Repository
public interface PersonMapper {
void batchInsert(@Param("persons") List<Person> persons);
int batchDelete(@Param("arr") int[] arr);
}
PersonMapper.xml
<?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.example.mapper.PersonMapper" >
<resultMap id="BaseResultMap" type="person">
<result column="id" jdbcType="INTEGER" property="id"></result>
<result column="userName" jdbcType="VARCHAR" property="userName"></result>
<result column="email" jdbcType="VARCHAR" property="email"></result>
<result column="gender" jdbcType="VARCHAR" property="gender"></result>
<result column="dept_id" jdbcType="VARCHAR" property="dept_id"></result>
</resultMap>
<insert id="batchInsert" >
insert into person (userName,email,gender) values
<foreach collection="persons" item="person" separator=",">
(#{person.userName},#{person.email},#{person.gender})
</foreach>
</insert>
<delete id="batchDelete" >
delete from person where id in
<foreach collection="arr" item="arr" separator="," open="(" close=")">
#{arr}
</foreach>
</delete>
</mapper>
BatchInsertApplicationTests.java
@SpringBootTest
class BatchInsertApplicationTests {
@Autowired
PersonMapper personMapper;
@Test
void contextLoads() {
List <Person> personList = new ArrayList<>();
for (int i=0;i<5;i++){
Person person = new Person("jerry"+i ,"jerry@163.com"+i ,"F");
personList.add(person);
}
personMapper.batchInsert(personList);
}
@Test
void testDelete(){
personMapper.batchDelete(new int[] {11,12,13,14});
}
}
结果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HCMzGi0U-1628649044269)(C:\Users\zhangyn\AppData\Roaming\Typora\typora-user-images\image-20210811103023460.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z4aWa89k-1628649044270)(C:\Users\zhangyn\AppData\Roaming\Typora\typora-user-images\image-20210811103033513.png)]