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版权协议,转载请附上原文出处链接和本声明。