&rewriteBatchedStatements=true mysql 配置 开启批处理 oracle默认开启
可以自己测试下 对比下 速度提升很大
public class MybatisBatchTest {
@Autowired
SqlSessionTemplate sqlSessionTemplate;
@Test
public void test(){
SqlSession sqlSession = sqlSessionTemplate.getSqlSessionFactory().openSession(ExecutorType.BATCH, false);
SysUserMapper mapper = sqlSession.getMapper(SysUserMapper.class);
StopWatch stopWatch = new StopWatch();
stopWatch.start();
for (int i = 0; i < 100000 ; i++) {
SysUser sysUser = new SysUser();
sysUser.setUserCode("ww"+i);
sysUser.setUserName("ddd"+i);
sysUser.setUserPassword("ddd33f"+i);
sysUser.setUserCode("2");
sysUser.setUserState("2");
mapper.insert(sysUser);
if(i%40000 == 0){
sqlSession.commit();
sqlSession.clearCache();
}
}
sqlSession.commit();
sqlSession.clearCache();
stopWatch.stop();
System.out.println(stopWatch.getTotalTimeSeconds());
}
}