springmvc多条插入多条数据

controller:

/**
	 * 上传导入数据
	 *
	 * @param
	 * @throws Exception
	 */
	@RequestMapping(value = "/daoru", produces = "application/json;charset=UTF-8")
	@ResponseBody
	public Object daoru() throws Exception {
		logBefore(logger, Jurisdiction.getUsername() + "导入Dangwaidaibiaorenshishuju");
		Map<String, Object> map = new HashMap<String, Object>();PageData pd = new PageData();
		pd = this.getPageData();
		if (!Jurisdiction.buttonJurisdiction(menuUrl, "add")) {
			map.put("result", "没有权限");
			return AppUtil.returnObject(pd, map);
		} // 校验权限

		String filePath = PathUtil.getClasspath();
		String filename = pd.getString("filename");
		File target = new File(filePath, filename);
		FileInputStream fi = new FileInputStream(target);
		XSSFWorkbook wb = new XSSFWorkbook(fi);
		//HSSFWorkbook wb = new HSSFWorkbook(fi);


			List<PageData> listPd = (List<PageData>) ObjectExcelRead
					.readExcelStrings(filePath, filename, 1, 0, 0); // 执行读EXCEL操作,读出的数据导入List(这个方法没写)
			// 2:从第4行开始;0:从第A列开始;0:第0个sheet

			ProgressSingleton.put("总数", listPd.size());

			/* 存入数据库操作====================================== */
			//Calendar 现在 = Calendar.getInstance();
			pd.put("CREAT_TIME", Tools.date2Str(new Date()));//创建时间
			//pd.put("ACTIVATION_TIME", "");//激活
			pd.put("SPRAY_COORD_ID", pd.getString("coordid"));
			pd.put("SPRAY_GROUP_ID", pd.getString("groupid"));
			/**
			 * Excel文件中的列(从左到右) var0:设备编号 var1 :名称 var2 :卡号 var3 :数量 var4 :地址 var5 :状态
			 * var6:通信编号 var7:设备备注  var8:经度 var9:纬度 var10:最大数值
			 * var11:最小数值 var12:类型备注 var13:顺序 var14:开关 var15:类型ID
			 *
			 */
			PageData ppd = new PageData();
		    PageData num = new PageData();
		    List<PageData> enddeviceList = new ArrayList();
		    List<PageData> detailtypeenList = new ArrayList();
			for (int i = 0; i < listPd.size(); i++) {

					String bianhao =listPd.get(i).getString("var0");
					String bianhao1 = ppd.getString("bianhao");
					if(!bianhao.equals(bianhao1)){
						pd.put("NAME", listPd.get(i).getString("var1"));
						pd.put("CARDNUM", listPd.get(i).getString("var2"));
						pd.put("NUM", listPd.get(i).getString("var3"));
						pd.put("ADDR", listPd.get(i).get("var4"));
						pd.put("STS", listPd.get(i).get("var5"));
						pd.put("SOCKETID", listPd.get(i).get("var6"));
						pd.put("REMARK", listPd.get(i).get("var7"));
						pd.put("LONGITUDE", listPd.get(i).get("var8"));
						pd.put("LATITUDE", listPd.get(i).get("var9"));
						enddeviceList.add(pd);
						//enddeviceService.save(pd);
						ppd.put("bianhao",listPd.get(i).getString("var0"));
						//获取最新的ID,不利于高并发使用(同时多人导入)
						num = enddeviceService.findByZ(null);
						//如果数据表为空时,直接退出
						if(null == num){
							return AppUtil.returnObject(pd, map);
						}
					}
					String num1 = String.valueOf(num.get("Z"));
					//pd.put("ID", listPd.get(i).get("var2"));//zi
					pd.put("MAXNUM", listPd.get(i).getString("var10"));
					pd.put("MINNUM", listPd.get(i).getString("var11"));
					pd.put("REMARK", listPd.get(i).get("var12"));
					pd.put("SPRAY_ENDDEVICE_ID",  Integer.parseInt(num1));
					pd.put("SPRAY_DETAILTYPE_ID", listPd.get(i).get("var15"));
					pd.put("SPRAY_ENDDEVICE_NUM", listPd.get(i).get("var2"));
					pd.put("LINE", listPd.get(i).get("var13"));
					pd.put("OP", listPd.get(i).get("var14"));
					detailtypeenList.add(pd);
					//detailtypeenService.save(pd);

				if (enddeviceList.size() == 1000){
					enddeviceService.saves(enddeviceList);
					enddeviceList.clear();
				}
				if (detailtypeenList.size() == 1000){
					detailtypeenService.saves(detailtypeenList);
					detailtypeenList.clear();
				}
				ProgressSingleton.put("第几条", i + 1);
			}
			enddeviceService.saves(enddeviceList);
			detailtypeenService.saves(detailtypeenList);

			map.put("zongshu", listPd.size());
		// 结束导入
		FileUtil.delFile(filePath + File.separator + filename);// 删除上传的文件

		map.put("result", "完成");
		return AppUtil.returnObject(pd, map);
	}

service:

 public void saves(List list)throws Exception{
        dao.save("EnddeviceMapper.saves", list);
    }

manager:

public void saves(List list)throws Exception;

xml:

<insert id="saves" parameterType="java.util.List">
	insert into
<include refid="tableName"></include>
	(
	MAXNUM,
	MINNUM,
	REMARK,
	SPRAY_ENDDEVIC_ID,
	SPRAY_DETAILTYP_ID,
	SPRAY_ENDDEVCE_NUM,
	LINE,
	OP
	) values
	<foreach item="item" index="index" collection="collection" separator=",">
		(
		#{item.MAXNUM},
		#{item.MINNUM},
		#{item.REMARK},
		#{item.SPRAY_ENDDEVICE_ID},
		#{item.SPRAY_DETAILTYPE_ID},
		#{item.SPRAY_ENDDEVICE_NUM},
		#{item.LINE},
		#{item.OP}
		)
	</foreach>

</insert>

百度了一下:上限是1000条,但是本位未测试过

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值