您的位置:首页 > 数据库

mybatis实现sql查询in()语句

2017-03-13 19:14 337 查看
现象:使用ssm框架 mybaits使用的sql语句中包含in()语句在java中该如何实现

比如:sql语句如下:

DELETE FROM tbl_channel_sms_deploy_province

WHERE exists (SELECT * FROM tbl_channel_sms_deploy

WHERE tbl_channel_sms_deploy_province.sms_deploy_id = tbl_channel_sms_deploy.id

AND tbl_channel_sms_deploy.sync_dest_mob = ‘1111111’) AND

tbl_channel_sms_deploy_province.province_id in (1,2,3)

或者简单语句如

DELETE from tbl_chanel where id in(1,2,3)

解决方案:

1:程序中传入完参数之后创建Map 传入sql语句中:



创建Map 放入参数 一个是字符串一个是list 其中list就是我们需要放入sql语句中in()中的参数;

2:在mybatis中的sql映射文件中



在sql映射文件中的parameterType写入java.util.map, 获取字符串参数的时候使用#{DestMob}就是Map的key。获取list作为in()中的参数:使用上图foreach标签 也是通过key获取。这样就实现sql的in()语句传值。

注意:

在获取Map中的list的时候:collection=”list”这样获取 而不是和字符串获取方式那样的#{list}(collection=”#{list}”貌似无法实现传值)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java mybatis