本段代码记录:常规方法如何调用Mapper对象bean,实现批量插入数据的方法
public void batchInsertMsg(List<Msg> msgList) throws Exception {
// 提交批量大小
int BATCH = 1000;
// 获取SqlSessionFactory实列
SqlSessionFactory sqlSessionFactory = ApplicationContextUtils.getBean("sqlSessionFactory");
// 创建会话,配置批量处理模式、关闭自动提交事务
SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false);
MsgMapper msgMapper = sqlSession.getMapper(MsgMapper.class);
int size = msgList.size();
for (int i = 0; i < size; i++) {
// 循环插入 + 开启批处理模式
msgMapper.insertMsg(msgList.get(i));
if (i != 0 && i % BATCH == 0) {
sqlSession .commit();
}
}
// 一次性提交事务
sqlSession.commit();
// 关闭资源
sqlSession.close();
}