电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

mybatis foreach標簽的使用詳解

瀏覽:144日期:2023-10-24 07:19:26

mybatis的foreach標簽經常用于遍歷集合,構建in條件語句或者批量操作語句。

下面是foreach標簽的各個屬性

屬性 描述 collection 表示迭代集合的名稱,可以使用@Param注解指定,如下圖mybatis foreach標簽的使用詳解所示 該參數為必選 item 表示本次迭代獲取的元素,若collection為List、Set或者數組,則表示其中的元素;若collection為map,則代表key-value的value,該參數為必選 open 表示該語句以什么開始,最常用的是左括弧’(’,注意:mybatis會將該字符拼接到整體的sql語句之前,并且只拼接一次,該參數為可選項 close 表示該語句以什么結束,最常用的是右括弧’)’,注意:mybatis會將該字符拼接到整體的sql語句之后,該參數為可選項 separator mybatis會在每次迭代后給sql語句append上separator屬性指定的字符,該參數為可選項 index 在list、Set和數組中,index表示當前迭代的位置,在map中,index代指是元素的key,該參數是可選項。

假設接口中傳遞的list如下所示:

List<String> list = new ArrayList<>();list.add('zhangsan');list.add('lisi');list.add('wangwu');

其中foreach標簽配置如下:

<foreach collection='list' item='item' separator=','>(#{item})</foreach>

可以看到的是foreach標簽指定了逗號作為分隔符,那么mybatis將會解析出foreach標簽里面的內容作為一個整體然后再其后面拼接上逗號分隔符,拼接后的過程如下所示:

(’zhangsan’) //第一步,迭代集合,獲取對應的item,和外部的(),拼接形成(’zhangsan’)(’zhangsan’), //第二步,在之前的基礎上拼接上逗號分隔符(’zhangsan’),(’lisi’) //第三步,繼續迭代(’zhangsan’),(’lisi’), //第四步,拼接逗號分隔符(’zhangsan’),(’lisi’),(’wangwu’) //第五步,迭代集合并拼接,到此迭代結束

最終的結果為

(’zhangsan’),(’lisi’),(’wangwu’)

如果在foreach標簽前面加上insert into table values,將會變形成

INSERT INTO user(user_name) VALUES(’zhangsan’),(’lisi’),(’wangwu’) 1

這種形式一般用于數據庫的批量增加。

如果將foreach配置修改如下,指定open屬性為左括弧,close屬性為右括弧:

<foreach collection='list' item='item' open='(' separator=',' close=')'>#{item}</foreach>

那么拼接的過程如下所示

(//第一步,拼接open指定的開始字符(’zhangsan’ //第二步,迭代集合,拼接對應的item(’zhangsan’, //第三步,拼接separator指定的分隔符(’zhangsan’,’lisi’ //第四步,迭代集合,拼接對應的item(’zhangsan’,’lisi’, //第五步,拼接separator指定的分隔符(’zhangsan’,’lisi’,’wangwu’ //第六步,迭代集合,拼接對應的item(’zhangsan’,’lisi’,’wangwu’) //第七步,拼接close指定的閉合字符

最終結果是:

(’zhangsan’,’lisi’,’wangwu’)

如果在foreach標簽前面加上select … from table where … in ,將會變形成

SELECT * FROM user WHERE user_name in (’zhangsan’,’lisi’,’wangwu’)

這種形式被用來構建in條件語句。

如果collection類型為map,則index代表key,item代表對應的value,可以這樣進行批量插入:

mybatis foreach標簽的使用詳解

其中Role實體類如下:

mybatis foreach標簽的使用詳解

如果你想了解更多的關于mybaits標簽的使用,請移步mybatis trim標簽的使用本文參考mybatis官方文檔

到此這篇關于mybatis foreach標簽的使用詳解的文章就介紹到這了,更多相關mybatis foreach標簽內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Mybatis 數據庫
相關文章:
主站蜘蛛池模板: 工作心得_读书心得_学习心得_找心得体会范文就上学道文库 | 盘式曝气器-微孔曝气器-管式曝气器-曝气盘-斜管填料 | 郑州市前程水处理有限公司 | 高柔性拖链电缆_卷筒电缆_耐磨耐折聚氨酯电缆-玖泰特种电缆 | 合肥抖音SEO网站优化-网站建设-网络推广营销公司-百度爱采购-安徽企匠科技 | 恒温油槽-恒温水槽-低温恒温槽厂家-宁波科麦仪器有限公司 | SMC-SMC电磁阀-日本SMC气缸-SMC气动元件展示网 | 企典软件一站式企业管理平台,可私有、本地化部署!在线CRM客户关系管理系统|移动办公OA管理系统|HR人事管理系统|人力 | 自动配料系统_称重配料控制系统厂家 | 美国PARKER齿轮泵,美国PARKER柱塞泵,美国PARKER叶片泵,美国PARKER电磁阀,美国PARKER比例阀-上海维特锐实业发展有限公司二部 | CTP磁天平|小电容测量仪|阴阳极极化_双液系沸点测定仪|dsj电渗实验装置-南京桑力电子设备厂 | 电梯乘运质量测试仪_电梯安全评估测试仪-武汉懿之刻 | 润滑油加盟_润滑油厂家_润滑油品牌-深圳市沃丹润滑科技有限公司 琉璃瓦-琉璃瓦厂家-安徽盛阳新型建材科技有限公司 | 陶瓷砂磨机,盘式砂磨机,棒销式砂磨机-无锡市少宏粉体科技有限公司 | 酒水灌装机-白酒灌装机-酒精果酒酱油醋灌装设备_青州惠联灌装机械 | CTAB,表面活性剂1631溴型(十六烷基三甲基溴化铵)-上海升纬化工原料有限公司 | 贴板式电磁阀-不锈钢-气动上展式放料阀-上海弗雷西阀门有限公司 工业机械三维动画制作 环保设备原理三维演示动画 自动化装配产线三维动画制作公司-南京燃动数字 | 快速门厂家批发_PVC快速卷帘门_高速门_高速卷帘门-广州万盛门业 快干水泥|桥梁伸缩缝止水胶|伸缩缝装置生产厂家-广东广航交通科技有限公司 | 体视显微镜_荧光生物显微镜_显微镜报价-微仪光电生命科学显微镜有限公司 | 环境模拟实验室_液体-气体控温机_气体控温箱_无锡双润冷却科技有限公司 | uv固化机-丝印uv机-工业烤箱-五金蚀刻机-分拣输送机 - 保定市丰辉机械设备制造有限公司 | 广西资质代办_建筑资质代办_南宁资质代办理_新办、增项、升级-正明集团 | 锂电混合机-新能源混合机-正极材料混料机-高镍,三元材料混料机-负极,包覆混合机-贝尔专业混合混料搅拌机械系统设备厂家 | 河北中仪伟创试验仪器有限公司是专业生产沥青,土工,水泥,混凝土等试验仪器的厂家,咨询电话:13373070969 | 手持式线材张力计-套帽式风量罩-深圳市欧亚精密仪器有限公司 | 深圳装修_店面装修设计_餐厅设计_装修全包价格-尚泰装饰设计 | 法兰连接型电磁流量计-蒸汽孔板节流装置流量计-北京凯安达仪器仪表有限公司 | 砂磨机_立式纳米砂磨机_实验室砂磨机-广州儒佳化工设备厂家 | 运动木地板价格,篮球馆体育运动木地板生产厂家_欧氏地板 | 超声波成孔成槽质量检测仪-压浆机-桥梁预应力智能张拉设备-上海硕冠检测设备有限公司 | 黑龙江京科脑康医院-哈尔滨精神病医院哪家好_哈尔滨精神科医院排名_黑龙江精神心理病专科医院 | 污水/卧式/潜水/钻井/矿用/大型/小型/泥浆泵,价格,参数,型号,厂家 - 安平县鼎千泵业制造厂 | 东莞画册设计_logo/vi设计_品牌包装设计 - 华略品牌设计公司 | 热回收盐水机组-反应釜冷水机组-高低温冷水机组-北京蓝海神骏科技有限公司 | 都江堰招聘网-都江堰人才网 都江堰人事人才网 都江堰人才招聘网 邢台人才网_邢台招聘网_邢台123招聘【智达人才网】 | 淬火设备-钎焊机-熔炼炉-中频炉-锻造炉-感应加热电源-退火机-热处理设备-优造节能 | 污水处理设备,一体化泵站,一体化净水设备-「梦之洁环保设备厂家」 | 流量检测仪-气密性检测装置-密封性试验仪-东莞市奥图自动化科技有限公司 | 耐磨陶瓷,耐磨陶瓷管道_厂家-淄博拓创陶瓷科技 | 电磁铁_小型推拉电磁铁_电磁阀厂家-深圳市宗泰电机有限公司 | 合同书格式和范文_合同书样本模板_电子版合同,找范文吧 | 恒温振荡混匀器-微孔板振荡器厂家-多管涡旋混匀器厂家-合肥艾本森(www.17world.net) |