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;
}
});
}