Mybatis批量插入数据到数据库
常规方式(foreach)批量插入
数据库里的Teacher表有如下字段:id,tname,age。
创建与数据库表对应的实体类Teacher.java
package com.lanou3g.mybatis.bean;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
@Getter
@Setter
public class Teacher {
private Integer id;
private String tname;
private Integer age;
public Teacher (){
}
public Teacher(String tname) {
this.tname = tname;
}
@Override
public String toString() {
return "{" +
"id:" + id +
", tname:'" + tname + '\'' +
", age:'" + age + '\'' +
"]}\n";
}
}
dao层接口TeacherDao
package com.lanou3g.mybatis.dao;
import com.lanou3g.mybatis.bean.Teacher;
import java.util.List;
public interface TeacherDao {
int batchInsertByNormal(List<Teacher> teacherList);
}
数据库相关外部配置文件jdbc.properties
jdbc.url=jdbc:mysql://localhost:3306/yanfa5?characterEncoding=utf8
jdbc.driver=com.mysql.jdbc.Driver
jdbc.user=root
jdbc.password=root
Mybatis的全局配置文件mybatis_conf.xml
主要用于配置Mybatis的运行环境(事务管理器、数据源等)。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 引入外部的properties文件,只能引入一个 -->
<properties resource="jdbc.properties" />
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
<!-- 定义类型别名(全局),在所有的Mapper.xml中都可以用 -->
<typeAliases>
<typeAlias type="com.lanou3g.mybatis.bean.Teacher" alias="Teacher" />
</typeAliases>
<!-- 配置多套环境的数据库连接参数(如:开发环境、生产环境) -->
<environments default="yanfa5">
<environment id="yanfa5">
<!-- 事务管理器:
MANAGED: 这个配置就是告诉mybatis不要干预事务,具体行为依赖于容器本身的事务处理逻辑。
JDBC: 这个配置就是直接使用了 JDBC 的提交和回滚设置,它依赖于从数据源得到的连接来管理事务作用域。
-->
<transactionManager type="MANAGED"/>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.user}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>