我正在尝试使用mybatis批处理执行(ExecutorType.BATCH)支持。我想批量插入几个记录在数据库的性能和可扩展性的原因。我想覆盖默认的Mybatis批处理大小。我没有找到任何以编程方式配置批处理大小的方法。有没有办法覆盖默认的批处理大小?以下是供您参考的代码:
public static void BatchUsingMyBatis() throws Exception
{
Contact contact = new Contact();
contact.setname("someone");
contact.setphone("somephone");
contact.setemail("someone@somedomain.com");
ClassPathXmlApplicationContext appContext =
new ClassPathXmlApplicationContext("BeanConfiguration.xml");
SqlSessionFactoryBean factoryBean = appContext.getBean(org.mybatis.spring.SqlSessionFactoryBean.class);
SqlSessionFactory factory = factoryBean.getObject();
SqlSession session = factory.openSession(ExecutorType.BATCH, false);
session.insert ("ins", contact);
session.insert ("ins", contact);
session.insert ("ins", contact);
session.insert ("ins", contact);
session.insert ("ins", contact);
session.commit();
}谢谢。
发布于 2013-03-13 16:49:55
如果我正确地理解了您的需求,并且您希望能够配置会话,以便一次提交将生成多个批量插入。例如,如果可以设置一次最多发送三个语句,则您提供的代码将生成一个批插入(一次三行)和另一批插入(一次两行)。我找不到关于这些功能的信息,我相信没有这样的功能,但是要实现这种行为,您需要重写BatchExecutor doUpdate方法和Configuration newExecutor方法,以便它能够识别新的Executor类。
https://stackoverflow.com/questions/15354660
复制相似问题