前言
项目重要用到利用mybatis框架批量插入数据库的问题,大概整理了以下几种方法
提示:以下是本篇文章正文内容,下面案例可供参考
一、准备
首先创建实体类
import lombok.Data;
@Data
public class User {
private int id;
private int sex;
private String name;
private String phone;
}
创建user表
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(11) NOT NULL,
`sex` tinyint(1) NOT NULL,
`phone` varchar(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
二、使用mybatis
1.编写dao层
@Mapper
public interface CommonDao {
int insertToUser(List<User> list);
}
2.编写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="edu.hust.bht.dao.CommonDao">
<insert id ="insertToUser" parameterType="java.util.List" >
insert into user (name,sex,phone) values
<foreach collection ="list" item="user" index= "index" separator =",">
(
#{user.name},#{user.sex},#{user.phone}
)
</foreach >
</insert >
</mapper>
重点是foreach元素
foreach元素主要有4个属性:
属性名 | 作用 | 是否必须 |
---|---|---|
collection | foreach的对象 | 是 |
item | 相当于元素迭代的元素名 | 是 |
index | 元素序号 | 否 |
separator | 元素之间的分隔符 | 否 |
3.测试
插入之前数据库
测试代码
@Test
public void test10(){
ArrayList<User> list1 = new ArrayList<>();
for (int j = 0; j < 5; j++) {
User user = new User();
user.setName("小明"+j+"号");
user.setSex(1);
user.setPhone("电话"+j+"号");
list1.add(user);
}
this.commonDao.insertToUser(list1);
}
成功!!!
总结
本文仅仅简单介绍了mybatis框架批量插入数据的使用,而mybatis提供了大量操作数据库的方法。