mybatis动态sql-批量删除(delete、foreach)

前言:在上篇中,我们通过update标签和set标签的组合,实现了对数据库的动态update操作。
3、举例:传入一个数组a[id1,id2,id3,id4],经过foreach标签处理后,将生成:
(id1,id2,id3,id4)
本篇中,我们将通过delete标签和foreach标签实现对数据库中记录的批量删除。需要注意的是,foreach标签几乎就只有在批量删除是有用了。
思路:删除的是cn_note表中的记录,所以到cn_note表的sql定义文件中去创建批量删除的sql组件
知识点:mybatis中的foreach标签
1、作用:用于遍历集合或数组
目的:这里有个普通的删除sql语句
delete from
cn_note
where cn_note_id in
(1,3,5)
整个foreach标签就是为了动态生成蓝色部分的代码
2、在foreach标签中,有这几个属性:
--collection:表示遍历的目标
使用距离:collection="array":遍历的是参数数组
注:array是关键字,表示任意类型的数组
--open:在循环之前生成的内容
例:open="("
作用
delete from
cn_note
where cn_note_id
in(
--close:在循环之后生成的内容
例:clost=")"
作用:
delete from
cn_note
where cn_note_id
in ()
--item:表示循环的变量
--#{aaa}:表示循环将打印出内容aaa
--separator:在两次循环之间的生成分隔符(该属性的值)
例:separator=","表示在两次循环生成的内容之间添加逗号
此时的整个删除sql语句为:
delete from
cn_note
where cn_note_id
in (id1,id2,id3,id4)
后一篇:重点:AOP的原理