mybatis实现sql查询in()语句

本文介绍如何在MyBatis中实现SQL语句中的IN条件参数传递,包括使用Map存储参数并通过foreach标签实现list类型的参数传递。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

现象:使用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}”貌似无法实现传值)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值