mybatis的xml中sql语句中in的写法(迭代遍历)
这里使用 foreach标签
<foreach item="item" collection="listTag" index="index" open="(" separator="," close=")">
#{item}
</foreach>
foreach元素的属性主要有 item,index,collection,open,separator,close。
item表示集合中每一个元素进行迭代时的别名.
index指 定一个名字,用于表示在迭代过程中,每次迭代到的位置.
open表示该语句以什么开始,separator表示在每次进行迭代之间以什么符号作为分隔 符.
close表示以什么结束.
1.如果传入的是单参数且参数类型是一个List的时候,collection属性值为list
<select id="addList" resultType="map">
select * from tp_trade where id in
<foreach item="item" collection="list" index="index" open="(" separator="," close=")">#{item}</foreach>
</select>
传入参数的代码为:
List<Object> addList(List<Object> ids);
2.如果传入的是单参数且参数类型是一个Array数组的时候,collection属性值为array
<select id="addArray" resultType="map">
select * from tp_trade where tt_type in
<foreach item="item" collection="array" index="index" open="(" separator="," close=")">#{item}</foreach>
</select>
传入的参数代码为:
List<Object> addArray(String[] ids);
3.如果多个参数,我们会封装成map类型,然后在把需要遍历的list或者array封装到map中。
传入的参数代码为:
String str = "1,2,3,4";
Map map = new HashMap();
map.put("type",str.spit(","));
再把封装好map传入到方法中。
List<Object> addMap(Map<String,Object> map);
<select id="addMap" resultType="map">
select * from tp_trade where type in
<foreach item="item" collection="type" index="index" open="(" separator="," close=")">#{item}</foreach>
</select>
type就是数组集合,使用item遍历即可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2019-06-20 SSM框架——Spring+SpringMVC+Mybatis的搭建教程
2019-06-20 shiro权限控制(一):shiro介绍以及整合SSM框架