MyBatis 动态SQL 批量插入与更新

1.需求场景

    利用MyBatis 动态SQL 进行批量插入和更新

2.项目环境

springboot-2.1.x,MyBatis3.4.x,Mysql5.7

3.实现方法

<insert id="insertStudents" useGeneratedKeys="false" parameterType="java.util.List">
        <foreach collection="list" item="item">
            insert into t_student
            <trim prefix="(" suffix=")" suffixOverrides=",">
			    <if test="item.userid != null  and item.userid != ''  ">USER_ID,</if>
                <if test="item.username != null  and item.username != ''  ">USERNAME,</if>
                <if test="item.age != null  and item.age != ''  ">AGE,</if>
            </trim>
            <trim prefix="values (" suffix=")" suffixOverrides=",">
			    <if test="item.userid != null  and item.userid != ''  ">#{item.userid},</if>
                <if test="item.username != null  and item.username != ''  ">#{item.username},</if>
                <if test="item.age != null  and item.age != ''  ">#{item.age},</if>
            </trim>;
        </foreach>
    </insert>


<update id="batchupdateStudents" parameterType="java.util.List">
        <foreach collection="list" item="item">
            update t_student
            <trim prefix="SET" suffixOverrides=",">
                <if test="item.username!= null  and item.username != '' ">USERNAME = #{item.username},</if>
                <if test="item.age!= null  and item.age != '' ">AGE = #{item.age},</if>
            </trim>
            where USER_ID = #{item.userid};
        </foreach>
    </update>

注意:配置MySql5.7数据库链接时必须指定如下标红参数

    jdbc:mysql://localhost:3306/demo?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC&allowMultiQueries=true


版权声明:本文为u011625492原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。