批量操作
前面在介绍动态SQL的时候,使用了foreach进行批量操作,但是那其实不是真正的批量操作,当数据多起来后就不行了。
因此,mybatis有自己的批量操作
要进行批量操作,首先可以去全局配置文件中开启批量操作,只需要将settings的defaultExecutorType设置成BATCH即可,默认是SIMPLE,这样做之后执行器就变成了批量执行器了,但是这样做的代价有点大,所有的执行器都变成了批量执行器,因此我们不去全局配置文件中开启,而是在开启一个SqlSession的时候设置批量操作
SqlSessionFactory.openSession(ExecutorType.BATCH);
@Test
public void test4() throws IOException {
String source = "mybatis/mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(source);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
// 在这里设置ExecutorType.BATCH
try (SqlSession session = sqlSessionFactory.openSession(ExecutorType.BATCH, true)) {
EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);
for (int i = 0; i < 10000; i++) {
Employee employee = new Employee();
employee.setLastName(UUID.randomUUID().toString().substring(0, 5));
employee.setEmail("125@qq.com");
employee.setGender("0");
mapper.insert(employee);
session.commit();
}
}
}

浙公网安备 33010602011771号