UserMapper接口:
//批量增加数据
int addUserByBatch(List<User> users);
UserMapper.xml:
方法一:values写在外面,通过item动态取值
不能将()去掉,写在open和close中,会造成拼接错误
<insert id="addUserByBatch" parameterType="list">
insert into tb_user(name,sex,age) values
<foreach collection="list" separator="," item="user">
(#{user.name},#{user.sex},#{user.age})
</foreach>
</insert>
方法二:
使用;分隔,并修改url
<insert id="addUserByBatch" parameterType="list">
<foreach collection="list" separator=";" item="user">
insert into tb_user(name,sex,age) values
(#{user.name},#{user.sex},#{user.age})
</foreach>
</insert>
url修改为:
url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true
执行的sql语句:
方法三:
在创建sqlSession的时候加入批处理的处理器
for循环增加数据
UserMapper接口中:
//批量增加数据
int addUser(User user);
UserMapper.xml:
<insert id="addUser" parameterType="list">
insert into tb_user(name,sex,age) values (#{name},#{sex},#{age})
</insert>
//获取sqlSession,带有批处理能力
SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH);
//执行批量增加
for(int i=0; i<5; i++){
userMapper.addUser(user);
}
执行的sql语句: