教程
批量添加
int insertBatch(List<TmApplyTemplateDetail> applyTemplateDetailList);
<insert id="insertBatch" parameterType="list">
insert into
tm_apply_template_detail(
template_id,model_id,total_count,remark
)
values
<foreach collection="list" item="item" separator=",">
(
#{templateId},#{modelId},#{totalCount},#{remark}
)
</foreach>
</insert>
注意:当然你也可以在Java中写个循环,然后一条条的去添加,不过这样频繁insert执行效率比较低,在项目规模比较小和一次性插入数据不多时可以用。还是建议批量添加。
批量更新
UPDATE table
SET aa = CASE id
WHEN 1 THEN 'oo'
WHEN 2 THEN 'pp'
WHEN 3 THEN 'qq'
END
,SET bb = CASE id
WHEN 1 THEN 'xx'
WHEN 2 THEN 'yy'
WHEN 3 THEN 'zz'
END
WHERE id IN (1,2,3)
<update id="updateBatch">
update wd_solr set
name =
<foreach collection="list" item="item" separator=" " open="case id" close="end">
when #{item.id} then
#{item.name}
</foreach>
,logo =
<foreach collection="list" item="item"separator=" " open="case id" close="end">
when #{item.id} then
#{item.logo}
</foreach>
,timestamp =
<foreach collection="list" item="item"separator=" " open="case id" close="end">
when #{item.id} then #{item.timestamp}
</foreach>
where id in
<foreach collection="list" item="item" separator="," open="(" close=")">
#{item.id}
</foreach>
</update>
批量删除
<delete id="deleteByBatch">
delete from t_enterprise_output_value
where output_id IN
<foreach collection="array" item="outputId" open="(" separator="," close=")">
#{outputId}
</foreach>
</delete>