java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java批量插入数据

Java批量插入数据的代码实现

作者:一个正在努力的小白码农

日常工作或者学习中,可能会遇到批量插入数据的需求,一般情况下数据量少的时候,我们会直接调用批量接口插入数据即可,当数据量特别大时,我们就会用到分批插入数据,所以本文给大家介绍了Java批量插入数据的代码实现,需要的朋友可以参考下

前言

日常工作或者学习中,可能会遇到批量插入数据的需求,一般情况下数据量少的时候,我们会直接调用批量接口插入数据即可,当数据量特别大时,可能由于数据库限制,插入的数据最多不能超过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数据库插入数据,也可以用这种方法

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批量插入数据的代码实现的详细内容,更多关于Java批量插入数据的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文