MySQL---Mybatis 批处理(增,改,删)

一,增

MyBatis的批量插入

首先在Mapper层中定义如下方法:

1 int addStudentBatch(@Param("students") List<Student> students);

然后在对应的XML文件中写入如下语句:

 1 <insert id="addStudentBatch">
 2   insert into
 3   student(name,class)
 4   values
 5   <foreach collection ="students" item="student" index= "index" separator =",">
 6     (
 7     #{student.name},
 8     #{student.class}
 9     )
10   </foreach >
11 
12 </insert>

注意:Collection中的名字与mapper中的参数名相对应,item与类名相对应.

 二,改

MyBatis的批量修改

首先在Mapper层中定义如下方法:

1  int updateDeviceAlarmDataById(Map<String,Object> map);

然后在对应的XML文件中写入如下语句: 

 1 <update id="updateDeviceAlarmDataById" parameterType="java.util.Map">
 2         <!-- 接收list参数,循环着组装sql语句,注意for循环的写法
 3              separator=";" 代表着每次循环完,在sql后面放一个分号
 4              item="cus" 循环List的每条的结果集
 5              collection="list" list 即为 map传过来的参数key -->
 6         <foreach collection="list" separator=";" item="cus">
 7             update alarm_condition_device
 8             <set>
 9                 <if test="cus.deviceId != null">
10                     device_id = #{cus.deviceId,jdbcType=VARCHAR},
11                 </if>
12                 <if test="cus.alarmConditionId != null">
13                     alarm_condition_Id = #{cus.alarmConditionId,jdbcType=VARCHAR},
14                 </if>
15                 <if test="cus.isProcess != null">
16                     is_process = #{cus.isProcess,jdbcType=TINYINT},
17                 </if>
18                 <if test="cus.isDel != null">
19                     is_del = #{cus.isDel,jdbcType=TINYINT}
20                 </if>
21             </set>
22             where id = #{cus.id,jdbcType=VARCHAR}
23         </foreach>
24     </update>

二,删

MyBatis的批量删除

首先在Mapper层中定义如下方法:

1 int deleteAudioAudioFiles(@Param("ids") List<String> ids);

然后在对应的XML文件中写入如下语句: 

1 <delete id="deleteAudioAudioFiles" parameterType="java.lang.String">
2     delete from
3     agms_verify
4     where id in
5     <foreach collection="ids" item="id" open="(" separator="," close=")">
6       #{id,jdbcType=VARCHAR}
7     </foreach>
8   </delete>
原文地址:https://www.cnblogs.com/wdzhz/p/11263146.html