String ids = “1,2,3”,如ids作为参数传递,mybatis用foreach 拼接 in 条件。

// mapper.xml
SELECT *
FROM study

WHERE id in
<foreach item="item" index="index" collection="ids.split(',')"  open="(" separator="," close=")">
  '#{item}'
</foreach>
// mapper.java
@Select("<script>"+
        "select * from study " +
        "<if test=\"itemIds != null\">"+
        "where id in "+
        "<foreach item='item' index='index' collection=\"ids.split(',')\" open='(' separator=',' close=')'>"+
        "  #{item}"+
        "</foreach>"+
        "</if>"+
        "</script>"
    )

注意:添加if判断,ids不能为null,否则报空指针异常。

更多推荐

Mybatis in 逗号分隔字符串