mybatis执行批量更新batch update 的方法

Posted 星星满天

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis执行批量更新batch update 的方法相关的知识,希望对你有一定的参考价值。

1、数据库连接必须配置:&allowMultiQueries=true

  我的配置如下:jdbc:mysql://10.20.13.16:3306/CALENDAR?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true

2、批量修改并加判断条件(修改字段可选)

    <!-- 批量更新赛程 -->
    <update id="updateMatchs" parameterType="java.util.List">
        <foreach collection="matchs" item="item" index="index" open="" close="" separator=";">
            update t_match
            <set>
                <if test="item.title !=null">
                    TITLE = #{item.title,jdbcType=VARCHAR},
                </if>
                <if test="item.homeScore !=null">
                    HOME_SCORE = #{item.homeScore,jdbcType=INTEGER},
                </if>
                <if test="item.visitScore !=null">
                    VISTT_SCORE = #{item.visitScore,jdbcType=INTEGER},
                </if>
                <if test="item.liveSource !=null">
                    LIVE_SOURCE = #{item.liveSource,jdbcType=VARCHAR},
                </if>
                <if test="item.liveURL !=null">
                    LIVE_URL = #{item.liveURL,jdbcType=VARCHAR},
                </if>
                <if test="item.isHotMatch !=null">
                    IS_HOT_MATCH = #{item.isHotMatch,jdbcType=VARCHAR}
                </if>
            </set>
        where HOME_TEAM_ID = #{item.homeTeamId,jdbcType=VARCHAR} and
        VISIT_TEAM_ID = #{item.visitTeamId,jdbcType=VARCHAR} and
        MATCH_TIME = #{item.matchTime,jdbcType=BIGINT}
        </foreach>
    </update>

java接口

    /**
     * 批量修改赛程
     * 
     * @param matchs
     * @throws DaoException
     */
    void updateMatchs(@Param(value = "matchs")List<MatchBasic> matchs);

 

以上是关于mybatis执行批量更新batch update 的方法的主要内容,如果未能解决你的问题,请参考以下文章

mybatis执行批量更新batch update 的方法(oracle,mysql)

mybatis执行一条update语句时为啥会返回

mybatis update返回值 怎么配置

mybatis batch insert

mybatis 如何实现批量更新,批量执行多条update,我这样写怎么会报错呢?

mybatis批量更新不同参数多条语句带分号update报错的解决方案