在mybaties框架中<foreach>标签用来在 SQL 语句中循环遍历集合的标签。
可以用于执行批量操作如批量修改或者批量添加,在标签其中有以下的属性
collection
:指定循环遍历的集合。item
:指定集合中的每个元素在循环中的别名。index
:指定集合中的每个元素在循环中的索引。open
:循环开始前要添加的字符串。close
:循环结束后要添加的字符串。separator
:每次循环之间要添加的字符串。javaType
:指定循环列表中元素的 Java 类型。jdbcType
:指定循环列表中元素的 JDBC 类型。select
:指定要在循环中执行的查询语句。<select id="findByIds" parameterType="list" resultType="user"> select *from user <where> 传过来的数据是集合就是写list如果是数组就写array <foreach collection="list" open="id in (" close=")" item="id" separator=","> #{id} </foreach> </where> </select>
这个就是用<foreach>标签的小列子
-
这是一个批量查询的sql语句,如果用jdbc来写的话应该是这样的
select * from user where id IN(1,2,3);
但是数据多的话会很麻烦,而<foreach>标签就解决了这个问题,<foreach> 标签中我们把传入的参数类型 list(或者数组等)作为源参数类型,子属性 collection 就代表集合中的元素”。因为 collection 属性并不是 Java 中的原生数据类型,而是用于指定集合类型的一个属性,我们从 “id in (” 这以后 到 这个 ”)“的以前,以 ‘,’为分割取出来的每个的数据来做某些操作,
在sql代码中 open ="id in ( " 就是从这个地方开始
close = ") " 就是至这个地方结束 separator = ", "作为分割集合中的数据 最后取出来 放到 item = " id "中,在执行批量查询操作。
这个简单的sql代码就演示完了。