遍历mybatis中的字符串

时间:2018-10-30 15:16:35

标签: mybatis

我的字符串参数是这样的:'(1,2,3,4)'

我想对此进行迭代

SELECT * FROM table WHERE value IN #{myparameter}

我该怎么做?

1 个答案:

答案 0 :(得分:0)

您可以像这样将值逐字输入查询中:

SELECT * FROM table WHERE value IN ${myparameter}

但是请注意,这不使用准备好的语句参数。它具有不使用准备好的语句的所有缺点,即:它不是类型保存的,容易受到SQL注入的影响,需要转义等。

您最好将字符串转换为列表,然后以类型安全的方式生成查询:

SELECT *
FROM table
WHERE value IN
<foreach item="item" index="index" collection="myparameter"
         open="(" separator="," close=")">
    #{item}
</foreach>

myparameter应该是Collection列类型的value