mybatis批量添加,更新,刪除(mapper.xml)


1,批量添加

批量插入數據使用的sql語句是:

insert into table (字段一,字段二,字段三) values(xx,xx,xx),(oo,oo,oo)

 

mapper文件:

int insertBatch(List<TmApplyTemplateDetail> applyTemplateDetailList);

 

mapper.xml文件:

  <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執行效率比較低,在項目規模比較小和一次性插入數據不多時可以用。還是建議批量添加。

 

2,批量更新

批量更新SQL:

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)

 

mapper.xml文件:

   <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>

 

3,批量刪除

SQL:

delete from table where XX IN(XX,XX,XX)

 

mapper.xml:

  <delete id="deleteByBatch"> delete from t_enterprise_output_value where output_id IN <foreach collection="array" item="outputId" open="(" separator="," close=")"> #{outputId} </foreach>
    </delete>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM