文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

java实现批量插入数据

2023-09-03 06:55

关注

日常工作或者学习中,可能会遇到批量插入数据的需求,一般情况下数据量少的时候,我们会直接调用批量接口插入数据即可,当数据量特别大时,可能由于数据库限制,插入的数据最多不能超过100条(假如限制100条),就算是数据库支持一次性插入千条也会耗内存,如果使用一条一条的插入数据库中的话,会特别耗时间,大概是正常批量插入数据所耗时间的三倍,所以我们就会用到分批插入数据。

代码实现:

@Override    public void selectData(String statisDate, String eventCode) {        List<FilterLogEntity> filterLogEntity = filterlogMapper.selectData(statisDate, eventCode);        //存储插入数据(100条数据)        List<DataLog> dataLogList = new ArrayList<>();        int nums = 100;        for (int i = 0; i < filterLogEntity.size(); i++) {            dataLogList.add(filterLogEntity.get(i));            if (i > 0 && i % nums == 0 || i == filterLogEntity.size() - 1) {                filterOraMapper.insertData(dataLogList);                //每次插入完数据,将上次存储的100条数据清空                dataLogList.clear();            }        }    }

xml中sql,此处是给oracle数据库中插入数据

<insert id="insertData">insert into 表名(a,b,c)<foreach collection="dataLogList" item="item" separator="UNION ALL">select#{item.a},#{item.b},#{item.c}from dual</foreach></insert>

给其他数据库插入数据:

<insert id="insertList" parameterType="java.util.List">insert into 表名 (a,b,c)VALUES<foreach collection="dataLogList" index="index" item="item" separator="," >(#{item.a},#{item.b},#{item.c})</foreach></insert>
后续新增:给oracle数据库插入数据,也可以用这种方法```xmlbegin        <foreach collection="list" item="item" index="index">            insert into masakr.TB_HUMAN_SOCIAL_SECURITY@LINK33            (date_time, province, city, pr_name, pr_lingering_num, city_name, city_lingering_num,            gender_name,gender_num)            values(            #{item.dateTime},            #{item.province},            #{item.city},            #{item.prName},            #{item.prLingeringNum},            #{item.cityName},            #{item.cityLingeringNum},            #{item.genderName},            #{item.genderNum}            );        </foreach>        end;

来源地址:https://blog.csdn.net/qq_58545721/article/details/129791645

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯