动态sql(foreach标签,实现批量删除,两种方式)
2022/6/30 2:51:06
本文主要是介绍动态sql(foreach标签,实现批量删除,两种方式),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
动态sql(foreach标签,实现批量删除)
批量删除sql的两种写法:
-
delete from t_user where id in ids;ids为id的数组 sql1
-
delete from t_user where id = ? or id =? or id =?; ids为数组 sql2
mybatis默认处理数组的方式:
1.以arg0或者array作为键,将数组封装成一个map,按键取值
我们也可以:
1.传入一个自定义map
2.@param注解
sql1的实现
delete from t_user where id in ids
<delete id="deleteMany"> delete from t_user where id in <foreach collection="ids" item="id" separator="," open="(" close=")"> #{id} </foreach> </delete>
<foreach collection="ids" item="id" separator="," open="(" close=")">
collection="ids" 接受List集合(mybatis默认的处理方式就按arg0、array接受,@param处理方式就按注解value值接受,自定义map方式就按键名接受,都不加#{}或者${})
item="id" List集合种每个元素都以id为键,因为是循环,所以一次只将一个元素的键设置为id
separator="," 每次循环结果之间添加的分割符,分隔符号前后自带一个空格
open="(" close=")" 循环开始前添加,循环结束时添加
sql2的实现
delete from t_user where id = ? or id =? or id =?
<delete id="deleteMany"> delete from t_user where <foreach collection="ids" item="id" separator="or"> 分割符换成了or,循环前后也不需要添加任何字符串 id = #{id} </foreach> </delete>
这篇关于动态sql(foreach标签,实现批量删除,两种方式)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-04-26高性能表格工具VTable总体构成-icode9专业技术文章分享
- 2024-04-16软路由代理问题, tg 无法代理问题-icode9专业技术文章分享
- 2024-04-16程序猿用什么锅-icode9专业技术文章分享
- 2024-04-16自建 NAS 的方案-icode9专业技术文章分享
- 2024-04-14ansible 在远程主机上执行脚本,并传入参数-icode9专业技术文章分享
- 2024-04-14ansible 在远程主机上执行脚本,并传入参数, 加上remote_src: yes 配置-icode9专业技术文章分享
- 2024-04-14ansible 检测远程主机的8080端口,如果关闭,则echo 进程已关闭-icode9专业技术文章分享
- 2024-04-14result 成功怎么写-icode9专业技术文章分享
- 2024-04-14stopped 状态设置为变量,由外部传递进来-icode9专业技术文章分享
- 2024-04-14为什么ansible执行远程脚本需要放到后台-icode9专业技术文章分享