Mybatis中foreach的使用
首先我们要明白的是foreach的本质就是把数据库能执行的sql在xml中按照一定语法来进行拼接,所以拼接之前,我们了解一下foreach标签中几个常见元素的作用
1.collection
List或Array:如果传入的参数类型是List或Array,collection属性的默认值分别是list和array。如果需要自定义集合名称。
Map:如果传入的参数是Map,collection属性可以指定遍历Map的keys、values或entrySet
2.item
集合遍历中每一个元素的别名
3.open
拼接sql时最前面拼接的字符串
4.separator
拼接sql时候两个元素之间的分隔字符串
5.close
拼接sql时最后面拼接的字符串
6.index
index:在List或Array中,index为元素的序号索引;在Map中,index为遍历元素的key值。
举一个简单的例子
一个简单的sql
select * from blog where title is not null and (id=1 or id=2 or id=3)
1.我们使用map集合作为参数实现拼接
<select id="queryBlogForeach" parameterType="map" resultType="blog"> select * from blog <where> title is not null <foreach collection="ids" item="id" open="and (" separator="or" close=")"> id=#{id} </foreach> </where> </select>
2.我们使用list集合作为参数实现拼接
select * from blog
title is not null
id=#{id}
Mybatis中foreach的使用的更多相关文章
- mybatis中foreach的用法(转)
foreach一共有三种类型,分别为List,[](array),Map三种. foreach属性 属性 描述 item 循环体中的具体对象.支持属性的点路径访问,如item.age,item.inf ...
- mybatis中foreach使用
mybatis中的<foreach collection="list" item="item" index="index" open= ...
- 谈一下思考,关于mybatis中<foreach collection="list">中list得来的原因 没看到官方说明
<foreach> 是在sql语句中进行多个id查询 时用到的,因为mybatis代替jdbc和hibernate, 使用 在xml文件中编写sql语句,这是一个标签文件.然后在 dao层 ...
- mybatis 中 foreach 的性能问题及调优
1.mybatis中最初的sql语句 SELECT 参数1, 参数2, 参数3 FROM 表 WHERE 条件参数1 in <foreach item="item" inde ...
- mybatis中foreach参数过多效率很慢的优化
foreach 后面in 传入的参数有1万条,#和$是有效率区别的,$的效率远高于#,上篇文章做了比较. 但没达到我的理想结果. 1. 更改方式,把foreach 去掉,改成拼装方式, 参数直接拼装成 ...
- MyBatis中foreach循环的用法
一.在了解foreach之前,先了解一下mybatis传入参数及parameterType 1.我们在Dao层向对应的mapper.xml文件传递参数时,可以传递的参数有: ①.基本数据类型(如int ...
- mybatis 中 foreach collection的三种用法(转)
文章转自 https://blog.csdn.net/qq_24084925/article/details/53790287 oreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集 ...
- mybatis中foreach使用方法
作者:学无先后 达者为先 作者:偶尔记一下 foreach一共有三种类型,分别为List,[](array),Map三种. 下面表格是我总结的各个属性的用途和注意点. foreach属性 属性 描述 ...
- mybatis 中 foreach collection的三种用法
foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合. foreach元素的属性主要有 item,index,collection,open,separator,close. ...
- mybatis中<foreach>标签的使用
标签太多,记一下不是特别常用的标签~留着脑袋瓜不机灵的时候看! <foreach>标签 该标签的作用是遍历集合类型的条件 <select id="countByUserL ...
随机推荐
- wget 提示 "无法验证 xxxx.xxx 的由 “xxx” 颁发的证书: 无法本地校验颁发者的权限。"
有一天在使用 wget 下载文件时,出现了无法验证证书的提示: $ wget https://github.com/zayronxio/Mkos-Big-Sur/releases/download/0 ...
- 【Linux】之切换root用户与重启系统相关命令
一.切换用户 <Linux中怎么从root用户切换到普通用户> su是在用户间切换,可以是从普通用户切换到root用户, test@ubuntu:~$ su Password: root@ ...
- echarts的x轴显示不全的解决办法
echarts的x轴显示不全的解决办法 一.背景 当x轴类目较多时,label显示时会自动间隔显示,也就是会隐藏掉中间的label,如下图: 二.解决办法 通过设置 xAxis.axisLabel.i ...
- ASP.NET Core – Razor Pages Routing
前言 之前有提过, MVC 和 Razor Pages 最大的区别就在 Routing 上. Razor Pages 的结构是 route, page, model route match to pa ...
- 项目发布后项目时间和linux时间不一致
查阅了很多资料,本来总以为是项目的问题,启动前端,连接不同的后台,本地项目时间是正确的,部署到linux Docker容器就不行.很纳闷...... 基于以上,还是决定记下来,以便后来的人查阅,解决问 ...
- 2024年常用的Net web框架
ASP.NET Core 框架声明:是微软推出的新一代开源.跨平台的 Web 应用框架,用于构建高性能.现代化的 Web 应用程序. 官网地址:https://dotnet.microsoft.com ...
- Redis 发布订阅模式
概述 Redis 的发布/订阅是一种消息通信模式:发送者(Pub)向频道(Channel)发送消息,订阅者(Sub)接收频道上的消息.Redis 客户端可以订阅任意数量的频道,发送者也可以向任意频道发 ...
- ByConity与主流开源OLAP引擎(Clickhouse、Doris、Presto)性能对比分析
引言: 随着数据量和数据复杂性的不断增加,越来越多的企业开始使用OLAP(联机分析处理)引擎来处理大规模数据并提供即时分析结果.在选择OLAP引擎时,性能是一个非常重要的因素. 因此,本文将使用TPC ...
- iOS之动画(transform和UIView动画)学习
1.transform 形变 这个是UIView的属性,继承UIView的控件都具有这个属性 UIImageView *imageview=[[UIImageView alloc]init]; ima ...
- vue3自动导入 api ,不需要多次导入 api 了
安装插件 npm i -D unplugin-auto-import 配置 vite.config.js export default defineConfig({ plugins: [ vue( ...