首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用MyBatis ExecutorType.Batch进行批量插入操作时控制批处理大小

问如何在使用MyBatis ExecutorType.Batch进行批量插入操作时控制批处理大小
EN

Stack Overflow用户
提问于 2013-03-12 14:22:27
回答 1查看 3.5K关注 0票数 0

我正在尝试使用mybatis批处理执行(ExecutorType.BATCH)支持。我想批量插入几个记录在数据库的性能和可扩展性的原因。我想覆盖默认的Mybatis批处理大小。我没有找到任何以编程方式配置批处理大小的方法。有没有办法覆盖默认的批处理大小?以下是供您参考的代码:

代码语言:javascript
复制
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();
    }

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2013-03-13 16:49:55

如果我正确地理解了您的需求,并且您希望能够配置会话,以便一次提交将生成多个批量插入。例如,如果可以设置一次最多发送三个语句,则您提供的代码将生成一个批插入(一次三行)和另一批插入(一次两行)。我找不到关于这些功能的信息,我相信没有这样的功能,但是要实现这种行为,您需要重写BatchExecutor doUpdate方法和Configuration newExecutor方法,以便它能够识别新的Executor类。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15354660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档