1、mapper接口中的方法存在批量数据操作,接口参数是List类型

     在mybatis的 xml 文件中,使用 foreach 动态标签拼接 SQL 语句,每一条数据的更新语句对应一条update语句,多条语句最终使用”;”号进 行拼接

<update id="updateBatchById">
    <foreach collection="list" item="item" separator=";">
        update
            `t_student`
        set
            `name` = #{item.name},
            `age` = #{item.age}
        where
            id = #{item.id}
    </foreach>
</update>

说明:其中 “list” 是接口参数类型为List的参数变量名;”item” 是List中的每个项,临时变量名;

执行下来之后,多个sql语句是以;拼接的,如: update xxxxx;update xxxx;update xxxx;

但存在部分数据库不支持多个sql语句一起执行,使用 ;隔开的方式,此时可以通过在数据库连接URL中指定allowMultiQueries参数值为true告诉数据库以支持”;”号分隔的多条语句的执行。

 

2、批量更新,使用 foreach 更新,加入 <set> <if> 标签判断与设置

<update id="updatePrice">
        <foreach collection="list" item="item" index="index" open="" close="" separator=";">
            update price_info
            <set>

                <if test="item.status != null and item.status != ''">
                    status = #{item.status},
                </if>
                <if test="item.price != null and item.price != ''">
                    price = #{item.price},
                </if>
            </set>
            where id = #{item.id}
        </foreach>
    </update>

 PS:只有string类型的数据才能使用 xxx  != ‘ ‘   当其他类型使用就会报类型转换错误

 

 

原文地址:http://www.cnblogs.com/sandyflower/p/16905808.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性