mybatis foreach 怎么遍历一个以逗号分割的字符串
时间: 2023-11-22 07:56:24 浏览: 258
MyBatis 提供了 `<foreach>` 标签来遍历集合或数组,可以用它来遍历一个以逗号分割的字符串。
假设有一个以逗号分割的字符串,例如:`"apple,banana,orange"`,可以使用 Java 的 `split()` 方法将其分割成一个数组,然后将该数组传递给 MyBatis 的 `<foreach>` 标签进行遍历。
以下是示例代码:
```xml
<select id="findFruits" resultType="Fruit">
SELECT * FROM fruits
WHERE name IN
<foreach item="item" index="index" collection="fruitNames" open="(" separator="," close=")">
#{item}
</foreach>
</select>
```
在上面的示例中,`fruitNames` 是一个 Java 数组,它的值为 `{ "apple", "banana", "orange" }`。MyBatis 将遍历该数组,并将每个元素作为 SQL 参数传递给查询语句中的 `IN` 子句。
如果要使用以逗号分割的字符串作为参数,可以在查询语句中使用 `split()` 方法将其转换成一个数组,然后再将该数组传递给 `<foreach>` 标签进行遍历。例如:
```xml
<select id="findFruits" resultType="Fruit">
SELECT * FROM fruits
WHERE name IN
<foreach item="item" index="index" collection="fruitNames" open="(" separator="," close=")">
#{item}
</foreach>
</select>
```
在上面的示例中,`${fruitNames}` 是一个以逗号分割的字符串,它的值为 `"apple,banana,orange"`。MyBatis 将使用 Java 的 `split()` 方法将其分割成一个数组,并将该数组传递给 `<foreach>` 标签进行遍历。
阅读全文