如何在MyBatis中将整数数组传递给IN子句
我的Mybatis中有一个查询,其中包含一个IN子句,该子句基本上是一组Id(整数)
我现在停留在如何将一个Integer数组传递给此IN子句上,以便它提取正确的记录。尝试通过将一个包含ID的String传递给IN子句,但这无法按预期工作。
下面的代码示例
Mybatis方法使用注释
@Select(SEL_QUERY) @Results(value = {@Result(property="id",column="ID")})
List<Integer> getIds(@Param("usrIds") Integer[] usrIds);
询问
select distinct ID from table a where a.id in ( #{usrIds} )
方法调用
Integer[] arr = new Integer[2];arr[0] = 1;
arr[1] = 2;
mapper.getIds(arr)
这不起作用,当我调用mapper方法时,Mybatis引发错误
有什么建议吗
回答:
在动态SQL MyBatis的用户指南对如何使用foreach循环来构建查询字符串,它适用于列表和数组的例子。
在3.2版之前,您必须使用xml配置来使用动态sql,对于较新的版本,还应该可以在注释中使用动态sql。
<select id="selectPostIn" resultType="domain.blog.Post"> SELECT *
FROM POST P
WHERE ID in
<foreach item="item" index="index" collection="list"
open="(" separator="," close=")">
#{item}
</foreach>
</select>
以上是 如何在MyBatis中将整数数组传递给IN子句 的全部内容, 来源链接: utcz.com/qa/431899.html