ibatis 批量插入,批量更新,批量删除,xml与Java代码实现方式

xml方式:

批量插入:

<insert id="insertAll" parameterClass="java.util.List">
		<![CDATA[  
        insert into mtclub_gift_order_job
        ( 
        	id, 
        	job_name,
        	parm_name,
			parm_value        	 
        ) values  
    	]]>
    	 <iterate conjunction =",">   
        <![CDATA[  
            (
            	#giftOrderJobs[].id#,
            	#giftOrderJobs[].jobName#,
            	#giftOrderJobs[].parmName#,
            	#giftOrderJobs[].parmValue#
            )  
        ]]>   
    	</iterate>
	</insert>
批量更新:

<update id="BatchUpdateGiftGiftFlag" parameterClass="java.util.List">
			update mtclub_gift_friend 
				set gift_flag = 1
			where logistice_order_id in
			<iterate conjunction="," open="(" close=")" >
				#list[]#
			</iterate>
	</update>
    批量删除:
<span style="white-space:pre"><delete id="deleteByIdlist" parameterClass="java.util.List">
<span style="white-space:pre">		</span>delete
<span style="white-space:pre">			</span>from mtclub_gift_friend
<span style="white-space:pre">			</span><!--conjunction="OR"也可以表示为conjunction=","-->
<span style="white-space:pre">		</span>    <iterate prepend="WHERE" open="(" close=")" conjunction="OR">
<span style="white-space:pre">		</span>     <span style="white-space:pre">	</span>logistice_order_id = #list[]#
<span style="white-space:pre">		</span>    </iterate>
<span style="white-space:pre">	</span></delete>	</span>
java代码实现:

/**
	   * ibatis批量插入数据
	   * @param recordList
	   */
		@Override
	  public void insertGiftOrderInfoJobByList(final List<GiftOrderInfoJob> recordList) {
		  this.execute(new SqlMapClientCallback(){
			  public Object doInSqlMapClient(SqlMapExecutor executor)
					  throws SQLException {
				  executor.startBatch();
				  // 每次提交最大条数
				  final int batchSize = 200;
				  int count = 0;
				  for (GiftOrderInfoJob record : recordList) {
					  executor.insert("giftOrderJob.insert", record);
					  // 每200条数据提交一次
					  if (++count % batchSize == 0) {
						  executor.executeBatch();
					  }
				  }
				  // 提交剩余的数据
				  executor.executeBatch();
				  return null;
			  }
		  });
	  }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值