0

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();
    }

ありがとう。

4

1 に答える 1

0

私があなたのニーズを正しく理解していて、1 回のコミットで複数のバッチ挿入が生成されるようにセッションを構成できるようにしたい場合。たとえば、最大 3 つのステートメントが一度に送信されるように設定できる場合、指定したコードは 1 つのバッチ挿入 (一度に 3 行) と別のバッチ挿入 (一度に 2 行) を生成します。そのような機能に関する情報を見つけることができず、そのような機能はないと思いますが、この動作を実装するには、BatchExecutor doUpdate メソッドと Configuration newExecutor メソッドをオーバーライドして、新しい Executor クラスを認識する必要があります。

于 2013-03-13T08:49:55.083 に答える