批量操作

前面在介绍动态SQL的时候,使用了foreach进行批量操作,但是那其实不是真正的批量操作,当数据多起来后就不行了。

因此,mybatis有自己的批量操作

要进行批量操作,首先可以去全局配置文件中开启批量操作,只需要将settingsdefaultExecutorType设置成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();
        }
    }
}

 

posted @ 2018-11-19 21:06  Jin同学  阅读(313)  评论(0)    收藏  举报