Mybatis foreach用法
时间: 2023-10-19 20:07:12 浏览: 105
mybatis之foreach用法详解
MyBatis 的 `foreach` 标签常常用于循环遍历参数列表,生成多条 SQL 语句,非常实用。
使用方式如下:
```xml
<!-- list 为参数列表,item 为循环变量,separator 为分隔符 -->
<foreach collection="list" item="item" separator=",">
#{item}
</foreach>
```
其中,`collection` 属性为参数列表,可以是一个数组或 List 等集合类型;`item` 属性为循环变量名,可以自定义;`separator` 属性为分隔符,可以指定在每个循环项之间插入的字符串。
举个例子,假设有以下 Java 代码:
```java
List<Integer> ids = Arrays.asList(1, 2, 3);
```
我们可以使用 `foreach` 标签将这个参数列表转化为 SQL 语句中的 IN 子句:
```xml
<select id="findByIds" resultType="User">
SELECT * FROM user WHERE id IN
<foreach collection="ids" item="id" separator="," open="(" close=")">
#{id}
</foreach>
</select>
```
这将生成以下 SQL 语句:
```sql
SELECT * FROM user WHERE id IN (1, 2, 3)
```
除了 `collection`、`item` 和 `separator` 属性,`foreach` 标签还有一些其他的属性,可以根据需要进行设置。例如,`open` 和 `close` 属性可以指定循环体的开头和结尾字符,`index` 属性可以指定循环计数器变量名,`separatorOverrides` 属性可以在循环体中指定一个新的分隔符。更多使用方式,可以参考 MyBatis 官方文档中的说明。
阅读全文