Mybatics foreach动态标签的使用
foreach 中的主要属性为 item,index,collection,open,separator,close
item 表示集合中一个元素迭代时的别名,自己定义,一般为item
index 指定的一个名字,用于表示每次迭代到的位置
open以什么开始
separator每次迭代的分割符号
close表示以什么结束
collection:有三种
分别是 list,array,Map(可以是一个对象,对象里面有一个List的集合,与map是同理)
1:list类型:
ArrayList arrayList=new ArrayList(); arrayList.add("1"); arrayList.add("2"); arrayList.add("3"); arrayList.add("4");
<select id="dynamicForeachTest" resultType="Blog"> select * from t_test where id in <foreach collection="list" index="index" item="item" open="(" separator="," close=")"> #{item} </foreach> </select
2:array类型
int[] ids = new int[] {1,2,3,4};
<select id="dynamicForeach2Test" resultType="Blog"> select * from t_test where id in <foreach collection="array" index="index" item="item" open="(" separator="," close=")"> #{item} </foreach> </select>
3:Map或者对象类型
public class TestEntity { private List<String> nameList; private String id; public List<String> getNameList() { return nameList; } public void setNameList(List<String> nameList) { this.nameList = nameList; } public String getId() { return id; } public void setId(String id) { this.id = id; } }
TestEntity testEntity=new TestEntity(); List<String> nameList = testEntity.getNameList(); nameList.add("1"); nameList.add("2"); nameList.add("3"); nameList.add("4");
<select id="dynamicForeach3Test" resultType="Blog"> select * from t_blog where title like "%"#{title}"%" and id in <foreach collection="nameList" index="index" item="item" open="(" separator="," close=")"> #{item} </foreach> </select>
注意此时collection的值为nameList,为实体类里面定位的值。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义