在MyBatis中執行批處理可以使用SqlRunner類的batch()方法。以下是一個示例代碼:
SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH);
SqlRunner sqlRunner = new SqlRunner(sqlSession);
try {
// 開始批處理
sqlRunner.batch(sqlSession -> {
// 執行批處理的SQL語句
sqlSession.insert("insertUser", user1);
sqlSession.insert("insertUser", user2);
sqlSession.insert("insertUser", user3);
});
// 提交事務
sqlSession.commit();
} catch (Exception e) {
// 發生異常時回滾事務
sqlSession.rollback();
} finally {
sqlSession.close();
}
在上面的代碼中,我們首先通過SqlSessionFactory打開一個新的SqlSession,并指定ExecutorType為BATCH。然后創建一個SqlRunner對象,并在batch()方法中執行需要批處理的SQL語句。最后在try-catch-finally塊中進行事務的提交和回滾操作。
需要注意的是,在執行批處理之前必須手動開啟事務,并在執行完成后手動提交或回滾事務。同時,在執行批處理時,所有SQL語句將會一起提交,所以務必確保所有SQL語句都能夠成功執行,否則需要手動回滾事務。