mybatis xml 中的批量操作

#mybatis 批量更新update foreach

 1 注意:需要在连接mysql的时候在application.yml中加上 &allowMultiQueries=true
 2 spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true
 3 
 4 #注解版本
 5 @Update({"<script>" +
 6             "<foreach collection='grouopByTagId' item='item' index='index' open='(' close=')'  separator=',' > " +
 7             " update " +
 8             TABLE_NAME +
 9             " SET status = 2, del_reason = #{item.delReason} " +
10             " where id = #{item.id} " +
11             "</foreach>" +
12             "</script>"})
13 
14 #方式2:
15     <update id="batchUpdateQuestion" parameterType="java.util.List">
16         <foreach collection="xuanZeBean" item="item" index="index">
17             update choose_question_management set
18             title = #{item.title},
19             title_id = #{item.titleId},
20             video_id = #{item.videoId},
21             option_type = #{item.optionType},
22             a_option_url = #{item.optionUrlA},
23             b_option_url = #{item.optionUrlB},
24             c_option_url = #{item.optionUrlC},
25             a_content_word = #{item.contentWordA},
26             answer = #{item.answer}
27             where 1=1 and id =#{item.id};
28         </foreach>
29     </update>
View Code

 #mybatis 批量新增操作 insert foreach

1     <insert id="batchInsert" parameterType="List">
2         insert into
3         user(user_name,phone,child_name,open_courses,open_date,expire_date,purchase_times,share_times,
4         purchase_timed,number_reports,accumulated_amount) VALUES
5         <foreach collection="users" item="user" index="index" separator=",">
6             (#{user.userName},#{user.phone},#{user.childName},#{user.openCourses},#{user.openDate},#{user.expireDate}
7             ,#{user.purchaseTimes},#{user.shareTimes},#{user.purchaseTimed},#{user.numberReports},#{user.accumulatedAmount})
8         </foreach>
9     </insert>
View Code

#mybatis 批量删除 delete foreach

 1 #dao层:
 2     void deleteMoreEmp(@Param("array") List array);
 3 #mybatis代码:
 4     <!-- 批量删除 -->
 5     <delete id="deleteMoreEmp" parameterType="int[]">
 6         <!-- delete from emp where empno in(7789,7790) -->
 7         <!-- forEach : 用来循环 collection : 用来指定循环的数据的类型 可以填的值有:array,list,map item
 8             : 循环中为每个循环的数据指定一个别名 index : 循环中循环的下标 open : 开始 close : 结束 separator : 数组中元素之间的分隔符 -->
 9         delete from token_management where id in
10         <foreach collection="array" item="arr" index="no" open="("
11                  separator="," close=")">
12             #{arr}
13         </foreach>
14     </delete>
15 
16 #参考 https://blog.csdn.net/benxiaohai888/article/details/78564751
View Code

 

posted on 2021-03-16 10:07  夜空中闪闪发光的星星  阅读(112)  评论(0)    收藏  举报