我的编程空间,编程开发者的网络收藏夹
学习永远不晚

java实现批量插入数据

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

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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>

给其他数据库插入数据:

<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

java实现批量插入数据

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Java实现百万级数据量向MySQL批量插入

业务背景: 大数据向mysql表同步百万级数量,我们需要将大数据表里同步过来的数据分别向三张业务表做数据同步,最终将业务表的数据展示给前台进行相关业务操作。 数据量级 大数据表:700w数据量 三张业务表分别需要同步:23w、80w、680
2023-08-25

SQLServer批量插入数据怎么实现

在SQL Server中,可以使用以下方法来实现批量插入数据:使用INSERT INTO VALUES语句来一次性插入多条数据,例如:INSERT INTO table_name (column1, column2, column3) V
SQLServer批量插入数据怎么实现
2024-04-09

MyBatis如何实现批量插入数据

本文小编为大家详细介绍“MyBatis如何实现批量插入数据”,内容详细,步骤清晰,细节处理妥当,希望这篇“MyBatis如何实现批量插入数据”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、SQL实现示例假设我们
2023-07-04

Java如何实现JDBC批量插入

本篇内容主要讲解“Java如何实现JDBC批量插入”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java如何实现JDBC批量插入”吧!一、说明在JDBC中,executeBatch这个方法可以将
2023-07-05

如何利用MySqlBulkLoader实现批量插入数据

这篇文章主要介绍“如何利用MySqlBulkLoader实现批量插入数据”,在日常操作中,相信很多人在如何利用MySqlBulkLoader实现批量插入数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何利
2023-07-02

MySQL脚本批量自动插入数据及数据可按条件插入实现

目录1.mysql脚本批量自动插入数据(数据相同)2.MySQL脚本批量自动插入数据(数据不相同)3.MySQL脚本批量自动插入数据(数据按条件生成) 1.MySQL脚本批量自动插入数据(数据相同)要自动插入100条数据,你可以使用循环来
MySQL脚本批量自动插入数据及数据可按条件插入实现
2024-01-29

Java实现JDBC批量插入原理详解

在JDBC中,executeBatch这个方法可以将多条dml语句批量执行,效率比单条执行executeUpdate高很多,这是什么原理呢?在mysql和oracle中又是如何实现批量执行的呢?本文将给大家介绍这背后的原理
2023-03-11

python数据库批量插入数据的实现(executemany的使用)

正常情况下往数据库多张表中批量插入1000条数据,若一条一条insert插入,则调用sql语句查询插入需要执行几千次,花费时间长现使用cursor.executemany(sql,args) ,可对数据进行批量插入, 其中args是一个包含
2022-06-02

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录