前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mybatis判断批量操作是否全部执行成功

mybatis判断批量操作是否全部执行成功

作者头像
阿超
发布2024-04-18 09:24:53
1060
发布2024-04-18 09:24:53
举报
文章被收录于专栏:快乐阿超快乐阿超

报纸是这个世界的镜子。——埃利斯

例如这样的代码:

代码语言:javascript
复制
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.ExecutorType;
import java.util.List;
import org.apache.ibatis.executor.BatchResult;

public class BatchOperationExample {
    public boolean checkAllBatchResultsSuccessful(List<BatchResult> batchResults) {
        for (BatchResult result : batchResults) {
            int[] updateCounts = result.getUpdateCounts();
            for (int count : updateCounts) {
                if (count <= 0) {  // 根据实际情况选择判断条件,有些情况下可能需要 count == 0
                    return false;  // 如果任何一个操作没有成功更新,则返回失败
                }
            }
        }
        return true;  // 所有操作都成功更新
    }

    public static void main(String[] args) {
        SqlSession sqlSession = null;
        try {
            sqlSession = MyBatisUtil.getSqlSession(ExecutorType.BATCH);
            // 假设有一个Mapper接口和对应的操作,例如:
            // UserMapper mapper = sqlSession.getMapper(UserMapper.class);
            // 执行批处理操作,例如:
            // mapper.insertUser(user1);
            // mapper.insertUser(user2);
            // ... 执行更多的批处理操作 ...

            sqlSession.commit();
            List<BatchResult> batchResults = sqlSession.flushStatements();

            BatchOperationExample example = new BatchOperationExample();
            boolean allSuccess = example.checkAllBatchResultsSuccessful(batchResults);
            System.out.println("All batch operations successful: " + allSuccess);
        } catch (Exception e) {
            sqlSession.rollback();
            e.printStackTrace();
        } finally {
            if (sqlSession != null) {
                sqlSession.close();
            }
        }
    }
}

不过也可以用Stream流的写法

代码语言:javascript
复制
batchResults.stream().flatMapToInt(r-> IntStream.of(r.getUpdateCounts())).allMatch(i->i>0);

核心就一点,就是注意每一个getUpdateCounts都大于0即可

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-04-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档