zoukankan      html  css  js  c++  java
  • Mybatis执行批量更新的sql(mysql中)

    方式一

    <update id="batchUpdate">
      <foreach collection="list" item="item" index="index" open="" close="" separator=";">
         update tableA set full_pinyin = #{item.fullPinyin}, first_letters =  #{item.firstLetters} where id =  #{item.id}
      </foreach>
     </update>
    

    此种方式数据库连接必须配置:&allowMultiQueries=true,如:jdbc:mysql://i.cnblogs.com:3306/test?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true
    否则会报错:

    会生成多条sql,一次事务

    方式二

    <update id="batchUpdate">
            update tableA set full_pinyin =
            <foreach collection="list" item="item" index="index" separator=" " open="case id" close="end">
                when #{item.id} then #{item.fullPinyin}
            </foreach>
               ,first_letters =
            <foreach collection="list" item="item" index="index" separator=" " open="case id" close="end">
                when #{item.id} then #{item.firstLetters}
            </foreach>
            where id in
            <foreach collection="list" item="item" index="index"  separator="," open="(" close=")">
                #{item.id}
            </foreach>
        </update>
    

    此种方式会生成一条sql,一次事务

    如:

    update tableA set full_pinyin =
             case id  
                when 570421480220418048 then 'huangmenji'
               
                when 570451322303307776 then 'fenjianceshikehu'
             end 
               , first_letters =
             case id  
                when 570421480220418048 then 'hmj'
               
                when 570451322303307776 then 'fjcskh'
             end 
            where id in
             (  
                570421480220418048
             , 
                570451322303307776
             );
    
  • 相关阅读:
    sql分页查询
    vi编辑器使用
    Linux命令:
    ubuntu中mysql忘记密码如何修改
    关于MySQL中自增的理解和设置
    MySQL中是索引
    MySQL中的分页操作结合python
    MySQL的分组和排序
    MySQL多表连接操作
    .NET Core App部署Linux
  • 原文地址:https://www.cnblogs.com/zhangxianming/p/15534455.html
Copyright © 2011-2022 走看看