Mybaties批量插入

Mybaties 批量插入有两种方式
1.用Java代码循环遍历集合,调取数据库
Mapper
	// 添加温度值
	public void addTemperature(Temperature temperature );

具体写法如下:

 	List<Temperature> list=new ArrayList<Temperature>();
 	Temperature temperature=	temperature=new Temperature();
    for(int i=0;i<list.size();i++) {
		    	     temperatureDataStorageMapper.addTemperature(list.get(i));    
		       }

这种方法sql语句无需做改动,正常插入语句即可。

2.用SQL语句循环遍历集合,分批次插入
Mapper
	// 添加温度值
	public void addTemperature(List<Temperature> list);

这种方法SQL语句需要做一些改变

Mapper.xml
    <insert id="addTemperature" parameterType="java.util.List">
   insert into 
      nl_temperature(equipment_num,acquisition_time,temperature,public_id) values
        <foreach collection="list" separator="," index="index" item="i">
            (
            #{i.equipmentNum},
            #{i.acquisitionTime},
            #{i.temperature},
            #{i.publicId}
            )
        </foreach>
    </insert> 

具体方法如下:

//循环入库
			   int n = 0;
		       int m = 0;
		       List<Temperature> list=new ArrayList<Temperature>();
 	           Temperature temperature=	temperature=new Temperature();
 	           //重新new 一个集合,一次性往集合里放4000条,4000这个数可调整,容易长度太长。
		       List<Temperature> newList = new ArrayList<>();
		       while(n<list.size()){
		        for(int h=m;h<m+4000;h++){
		        	if(h<list.size()) {
		        		newList.add(list.get(h));
		        	}
		        }
		      //调用批量插入
		        temperatureDataStorageMapper.addTemperature(newList); 
		        newList.clear();
		        n+=4000;
		        m+=4000;
		       }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值