如果我们要增加十万条数据 的时候 就面对着 执行速度 低 的问题,Mybatis 则为我们提供了 一个批量操作的方式 可以大大降低 我们的执行时间。
//增加
public static void addStudent() throws IOException {
//加载配置文件
Reader reader = Resources.getResourceAsReader("config.xml");
//qlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
//session- 相当于connection
SqlSession session = sqlSessionFactory.openSession(ExecutorType.BATCH);
//映射文件中的namespace + id
StudentMapper studentmapper = session.getMapper(StudentMapper.class);
long start = System.currentTimeMillis();
for(int i=0 ; i<100000;i++) {
Person person = new Person((int) (Math.random()*9000+1000),"ww",30);
studentmapper.addPerson(person);
}
long end = System.currentTimeMillis();
System.out.println(end-start);
session.commit();//提交事务
session.close();
}
最重要的 就是 SqlSession session = sqlSessionFactory.openSession(ExecutorType.BATCH); 这一句。
其中Batch 会将sql代码预编译 ,之后的操作 只用增加数据 不再编译sql代码 所以速度大大提升
加入Batch 就可以开启 批量操作。大大降低 时间。