加载中…
个人资料
淦你娘码爆
淦你娘码爆
  • 博客等级:
  • 博客积分:0
  • 博客访问:1,402
  • 关注人气:2
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

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

(2017-04-18 17:56:46)
前言:在上篇中,我们通过update标签和set标签的组合,实现了对数据库的动态update操作。

本篇中,我们将通过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=","表示在两次循环生成的内容之间添加逗号

 3、举例:传入一个数组a[id1,id2,id3,id4],经过foreach标签处理后,将生成:
  (id1,id2,id3,id4)
此时的整个删除sql语句为:
delete from cn_note
where cn_note_id in (id1,id2,id3,id4)

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有