一、在xml文件中拼sql的方法
1、定义mapper接口
/**
* 批量插入用户信息
* @param users
*/
void insertBatch(@Param("users") List<UserInfo> users);
2、mybatis文件sql
<insert id="insertBatch">
insert into t_user_info
(
name,
age,
sex,
address,
mobile,
create_time,
update_time
)
values
<foreach collection="users" item="user" separator=",">
(
#{user.name},
#{user.age},
#{user.sex},
#{user.address},
#{user.mobile},
NOW(),
NOW()
)
</foreach>
</insert>
3、测试
@Test
public void insertBatchTest(){
List<UserInfo> users = new ArrayList<UserInfo>();
UserInfo u1 = new UserInfo();
UserInfo u2 = new UserInfo();
u1.setName("张三");
u1.setAddress("上海");
u1.setAge(24);
u1.setMobile("13347882343");
u1.setSex(0);
u2.setName("李四");
u2.setAddress("北京");
u2.setAge(34);
u2.setMobile("13347882345");
u2.setSex(1);
users.add(u1);
users.add(u2);
userInfoMapper.insertBatch(users);
}
4、结果
二、使用ExecutorType.BATCH创建SqlSession
1、测试代码
@Test
public void test09(){
SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH);
IUserMapper mapper = sqlSession.getMapper(IUserMapper.class);
long begin=System.currentTimeMillis();
for(int i=0;i<10000;i++){
mapper.insert(new User(null,"赵敏"+i,i,"镇雄"+i,false));
}
long end=System.currentTimeMillis();
System.out.println(end-begin);
sqlSession.close();
}
2、springboot 可以设置 mybatis.configuration.default-executor-type=batch