最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mybatis中批量更新多個字段的2種實現(xiàn)方法

 更新時間:2023年09月01日 09:54:17   作者:清水  
當我們使用mybatis的時候,可能經(jīng)常會碰到一批數(shù)據(jù)的批量更新問題,因為如果一條數(shù)據(jù)一更新,那每一條數(shù)據(jù)就需要涉及到一次數(shù)據(jù)庫的操作,本文主要介紹了mybatis中批量更新多個字段的2種實現(xiàn)方法,感興趣的可以了解一下

在mybatis中批量更新多個字段

推薦使用如下操作:

方式1:在Dao層接口中:

void updateBatch(@Param("list")List<Student> list);

在對應的mapper文件中如下:

<update id="updateBatch" parameType="java.lang.List">
  update student 
    <trim prefix="set" suffixOverrides=",">
       <trim prefix=" age = case " suffix="end,">
          <foreach collection="list" item="stu" index="index">
            <if test=" item.age != null and item.id != null">
              when id = #{item.id} then #{item.age}
            </if>
            <if test=" item.age == null and item.id != null">
              when id = #{item.id} then mydata_table.age   //原始值
            </if>
          </foreach>
       </trim>
       <trim prefix=" name = case" suffix="end,">
          <foreach collection="list" item="stu" index="index">
            <if test=" item.name!= null and item.id != null">
              when id = #{item.id} then #{item.name}
            </if>
            <if test=" item.name == null and item.id != null">
              when id = #{item.id} then mydata_table.name   //原始值
            </if>
          </foreach>
       </trim>
    </trim>
</update>

上面的sql語句打印出來,應該是這個樣子的:

update student  
 set  age = case
      when id = #{item.id} then #{item.status}//此處應該是<foreach>展開值  
       when id = #{item.id} then #{item.status}
      .... 
    end,
    name = case
      when id = #{item.id} then #{item.status}
      ...
    end
 where id in (?,?,?,?...);

<trim>屬性說明 

1.prefix,suffix 表示在trim標簽包裹的部分的前面或者后面添加內(nèi)容 
2.如果同時有prefixOverrides,suffixOverrides 表示會用prefix,suffix覆蓋Overrides中的內(nèi)容。 
3.如果只有prefixOverrides,suffixOverrides 表示刪除開頭的或結(jié)尾的xxxOverides指定的內(nèi)容 

方式2:在Dao層接口方法定義同上

mapper文件如下:

<update id="updateBatch"  parameterType="java.util.List">  
    <foreach collection="list" item="item" index="index" open="" close="" separator=";">
        update student
        <set>
            name=#{item.name},
       age = #{item.age}
        </set>
        where id = #{item.id}
    </foreach>      
</update>

到此這篇關于mybatis中批量更新多個字段的2種實現(xiàn)方法的文章就介紹到這了,更多相關mybatis 批量更新多個字段內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論

永泰县| 修文县| 桓台县| 湟源县| 应城市| 兴义市| 潞城市| 济阳县| 汉阴县| 浙江省| 黄梅县| 隆德县| 新巴尔虎右旗| 山阳县| 富顺县| 务川| 阿瓦提县| 裕民县| 镇赉县| 阿尔山市| 郸城县| 乐陵市| 石门县| 高密市| 太仓市| 定兴县| 岚皋县| 定安县| 沂源县| 铜川市| 青川县| 漾濞| 亳州市| 浮山县| 达日县| 都兰县| 浦东新区| 广灵县| 拜泉县| 巍山| 太谷县|