jdbc addBatch 处理大数据

<span style="font-family: Arial, Helvetica, sans-serif;">/** </span>
	* @Description 分销订单,批量增加操作 
	* @return -1:操作失败;0:执行正常;>0:执行成功的数目
	*/ 
	@Override 
	public int batchAddUsingJdbc(String beginDate,String endDate) {
		int result = 0; 
		Connection conn = null; 
		PreparedStatement pstmt = null; 
		List<MerchantDistributeInfo> distrilist=merchantDistributeService.getAll();
		String sql=" INSERT into merchant_distribute_stage_account_info(account_no,merchant_distribute_id,total_order_amount,total_withdrawal_amount) "+
				" values (?,?,?,?)";
        //遍历分销商,保存到分期账单表中		
		try{	
			conn = SessionFactoryUtils.getDataSource(sessionFactory).getConnection(); 
			conn.setAutoCommit(false); 
			pstmt = conn.prepareStatement(sql); 
		   for(MerchantDistributeInfo distr : distrilist){
				//根据分期时间/订单状态/分销商,查询订单
				Map<String,Object> distributeParamMap= merchantDistributeService.getDistrubuteByDateStatus(distr, beginDate, endDate);
				pstmt.setString(1,distributeParamMap.get("dateNo").toString()); 
				pstmt.setInt(2, distr.getId()); 
				pstmt.setBigDecimal(3, new BigDecimal(distributeParamMap.get("total").toString()));
				pstmt.setBigDecimal(4,new BigDecimal(distributeParamMap.get("littleTotal").toString()));
				pstmt.addBatch();
			} 
			pstmt.executeBatch(); 
			conn.commit(); 
			conn.setAutoCommit(true); 
		} catch (SQLException e) { 
			if (conn != null) { 
				try { 
				conn.rollback(); 
				} catch (SQLException e1) { 
				e1.printStackTrace(); 
				} 
			} 
		} finally { 
			if (pstmt != null) { 
				try { 
				pstmt.close(); 
				} catch (SQLException e) { 
				e.printStackTrace(); 
				} 
			} 
			if (conn != null) { 
				try { 
				conn.close(); 
				} catch (SQLException e) { 
				e.printStackTrace(); 
				} 
			} 
		} 
		return result; 
	}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值