java实现批量插入数据

这篇具有很好参考价值的文章主要介绍了java实现批量插入数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

  • 思路
  • 我们将数据查出,放到list里面,然后将数据循环,每次循环到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>

给其他数据库插入数据:文章来源地址https://www.toymoban.com/news/detail-509851.html

<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数据库插入数据,也可以用这种方法
```xml
begin
        <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;

到了这里,关于java实现批量插入数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 日常工作中常用的抓包工具都有哪些呢?

    大家好,今天我们一起来聊聊,在我们的日常工作中都有哪些抓包工具呢?你们平时工作中都在哪一款工具呢?一起学习交流。 一、Wireshark 这款抓包工具目前是使用最多的,分析网络交互非常方便 二、Fiddler,多数是使用在抓包手机的相关网络交互的网络包,目前也是非常流

    2024年01月20日
    浏览(54)
  • redis在日常开发工作中的常见用法

    redis是一款内存型数据库,在开发工作中经常用到,功能强大; 特别开一篇文章用来记录一下它的常见用法,算是一种总结; 它最主要的特点就是高可用的,速度快,分布式;有人说速度快,能有我本地的全局静态变量快?但是在大型的项目中,多个服务器部署时,其他服务

    2024年02月09日
    浏览(39)
  • 程序员日常|为什么我在开发工作中偏爱这款键盘?

    最近一直不断地有粉丝朋友们私信我,问我该如何给自己挑选一款适合程序员工作的键盘,于是今天来给大家介绍下我用的键盘。 程序员作为一个需要长时间敲代码的职业,没有一个趁手的键盘是不行的,往小了说是折损工作效率,往大了说就是在损伤自己的手,是对自己的

    2024年02月02日
    浏览(53)
  • ChatGPT在日常生活与工作中的应用,以及Hulu AI 的探索之旅

    在数字化快速发展的当下,人工智能技术已经成为我们不可或缺的一部分。特别是在信息过载的时代,AI 如 ChatGPT 等工具能够帮助我们更高效地处理信息,提升生活和工作质量。本文旨在探讨 ChatGPT 在不同领域的实用性,以及介绍一个集成了多种AI工具的平台——Hulu AI,它可

    2024年04月13日
    浏览(40)
  • ChatGPT会对我们日常生活带来什么影响?这些技术会改变我们学习阅读工作方式吗?

    AI 这个话题很火,我也一直在关注着,很多人甚至觉得 AI 会改变世界,也许你会好奇:ChatGPT 会在三年内终结编程吗?AI有可能改变人的学习方式吗?AI 能否取代打工人?本文会对相关问题从我们可见日常问题进行解答。 希望从:AI 辅助提高了人的阅读效率吗、AI能帮助人更

    2024年02月03日
    浏览(77)
  • Sqoop【实践 01】Sqoop1最新版 MySQL与HDFS\Hive\HBase 核心导入导出案例分享+多个WRAN及Exception问题处理(一篇即可学会在日常工作中使用Sqoop)

    1️⃣ 查看所有命令【 sqoop help 】 2️⃣ 查看某条命令的具体使用方法【 sqoop help COMMAND 】 查询MySQL所有数据库,通常用于 Sqoop 与 MySQL 连通测试: 【具体参数可以使用 sqoop help list-databases 查看】实例: 结果: 【2个】WARN处理: 查询指定数据库中所有数据表,这里要注意一下

    2024年03月18日
    浏览(49)
  • java实现批量插入数据

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

    2024年02月11日
    浏览(53)
  • Java8 实现批量插入和更新,SpringBoot实现批量插入和更新,Mybatis实现批量插入和更新

    基于mybatis实现的批量插入和更新 由于直接执行批量所有数据可能会出现长度超出报错问题,使用如下方式即可解决 原理还是分配执行,这里的100就是设定每次执行最大数 这里使用插入作为例子,也可以使用批量更新 更新的写法

    2024年02月12日
    浏览(54)
  • java 批量插入数据

    批量插入数据,常见的使用mybatis foreach 插入的方式,原始的方式和批处理 xml mapper: 对于数据量不是很大的,基本够用。如果同步数据特别慢,再考虑其它的方式。或者晚上凌晨再同步数据。 批量插入 数据库连接: 原始的方法写起来麻烦些。 MybatisGeneralBatchUtils  SpringUtil 

    2024年02月11日
    浏览(82)
  • Elasticsearch批量插入数据 java api

    在java代码开发中一般通过client api来对es进行CRUD操作。在想es插入数据时,有时候需要对数据进行批量插入。这时候可以使用bulk来实习批量插入操作,创建一个BulkRequest,接着遍历数据列表,在BulkRequest中添加每一条数据的IndexRequest。由于IndexRequest是插入单条数据,因此每一次

    2024年02月11日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包