Mybatis batch模式批量执行(插入)

    @Autowired
    private SqlSessionFactory sqlSessionFactory;
    //通过Mybatis batch模式批量插入群组人员
    //开启BATCH批量模式
    SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false);
    TIdReGroupUserMapper tIdReGroupUserMapper = sqlSession.getMapper(TIdReGroupUserMapper.class);
    int addNum = 0;
    try {
            TIdReGroupUser tIdReGroupUser = new TIdReGroupUser();
            for (int i = 0; i < userIds.length; i++) {
                tIdReGroupUser.setId(UUID.randomUUID().toString());
                tIdReGroupUser.setGroupId(groupId);
                tIdReGroupUser.setUserId(userIds[i]);
                addNum += tIdReGroupUserMapper.insert(tIdReGroupUser);
            }
            sqlSession.commit();
        }finally {
            closeSqlSession(sqlSession, sqlSessionFactory);
        }

可以通过增加一个计数来达到每多少次时开始commit

    /**
     * 每多少次时开始commit
     */
    private static final int batchCountToSubmit = 100;
    //计数
    int batchLastIndexToSubmit = 0;
    放在for循环里,到达总数就提交,记得最后也提交一次
    
posted @   Ideaway  阅读(1382)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示