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

来源:互联网 发布:nba总决赛欧文数据统计 编辑:程序博客网 时间:2024/06/07 04:03

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 = 1where 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;  }  });  }

0 0
原创粉丝点击