龙空技术网

Mybatis批量更新多条数据

互联网路上的学习者 56

前言:

而今咱们对“批量更新语句sql”大约比较关怀,各位老铁们都想要分析一些“批量更新语句sql”的相关文章。那么小编也在网上收集了一些关于“批量更新语句sql””的相关内容,希望各位老铁们能喜欢,同学们快快来学习一下吧!

直接上代码

<update id="modifyCityInfos" parameterType="java.util.List">    <foreach collection="list" item="item" index="index" open="" close="" separator=";">        update city_info        <set>            provice_code = #{item.proviceCode}, city_code = #{item.cityCode}, county_code=0 ,provice=#{item.proviceName},city=#{item.cityName}, county=#{item.countyName},  address = #{item.address}        </set>        where com_name=#{item.entrName}    </foreach></update>

针对上述代码,介绍下各个属性的意义。

foreach 主要用在构建in条件中,它可以在SQL语句中进行迭代下一个集合。

foreach表示集合中每一个元素进行迭代时的别名

index指定一个名字,用于表示在迭代过程中,每次迭代到的位置。

open表示该语句以什么开始

separator表示在每次进行迭代之间以什么符号作为分隔符

close表示以什么结束

在使用foreach的时候,最关键的是也是最容易出错的就是collection属性,该属性是必须指定的,但是在不同情况下,该属性的值是不一样的,主要有一下3种情况:

1:如果传入的是单参数且参数类型是一个List的时候,collection属性值为list

2:如果传入的是单参数且参数类型是一个array数组的时候,collection的属性值为array

3:如果传入的参数是多个的时候,我们就需要把它们封装一个Map了,当然单参数也可以封装成map

使用批量更新指定的SQL语句应该等价于:

update city_info provice_code =?where com_name = ?;

update city_info provice_code =?where com_name = ?;

update city_info provice_code =?where com_name = ?;

同时,注意: 使用批量更新时,需在数据库连接开启批量操作, 见本人文档

mybatis批量更新时,allowMultiQueries

标签: #批量更新语句sql #java sql批量更新 #java批量更新数据库中某一列的数据