zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    在 Mac OS X 上安装 TensorFlow
    用序列到序列和注意模型实现的:Translation with a Sequence to Sequence Network and Attention
    PyTorch 实战-张量
    PyTorch 实战-用 Numpy 热身
    tf.nn.embedding_lookup TensorFlow embedding_lookup 函数最简单实例
    叩响秋雨梧桐的大门——2018中考之后
    完全背包——01背包方法数
    dp——01背包
    图论最短路——dijkstra
    图论最短路——spfa
  • 原文地址:https://www.cnblogs.com/zhulei2/p/13432059.html
Copyright © 2011-2022 走看看