Java:16500条数据的List,如何简便的批量提交到MySQL呢?
ringa_lee
ringa_lee 2017-04-17 15:52:51
[Java讨论组]
ringa_lee
ringa_lee

ringa_lee

全部回复(2)
天蓬老师

这是基于ibatis batch insert的代码,从项目中抠出来的,希望能对你有所帮助

    protected <E> boolean executeBatch(List<E> elist, String sqlId) throws SQLException {
        boolean isAutoCommit = true;
        SqlMapClient sqlMapClient = this.getSqlMapClient();
        try {
            sqlMapClient.startTransaction();
            sqlMapClient.startBatch();
            isAutoCommit = sqlMapClient.getCurrentConnection().getAutoCommit();
            sqlMapClient.getCurrentConnection().setAutoCommit(false);
 
            int flag = 0;
            for (int i = 0, size = elist.size(); i < size; ++i) {
                sqlMapClient.insert(sqlId, elist.get(i));
                if (++flag == 200) {
                    flag = 0;
                    sqlMapClient.executeBatch();
                }
            }
            sqlMapClient.executeBatch();
            sqlMapClient.commitTransaction();
        } catch (SQLException e) {
            sqlMapClient.getCurrentConnection().rollback();// 事务回滚
            throw new SQLException(e.getCause());
        } finally {
            sqlMapClient.getCurrentConnection().setAutoCommit(isAutoCommit);// 恢复原来的状态
            sqlMapClient.endTransaction();
        }
        return true;
    }
PHP中文网

使用mybaitsforeach标签

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号