背景
项目中有个需求,根据多个整型id查询对应的信息
理论上最终sql应该是如下所示:
select userName form t_user where userId in(1,2,3,4,5,6);
但前端传来的参数
Integer[] userIdArr
想着就把userIdArr转成1,2,3,4,5,6就行了
/**
* [1,2,3] to 1,2,3
*
* @return
*/
public static String intArrToString(Integer[] arr) {
return StringUtils.join(arr, ",");
}
然后将字符串形式的userArrIds作为参数传给mappe,于是写成动态sql如下
@Select("select userName from t_user where userId in (#{userArrIds})")
List<String> getUserNameByUserIds(String userArrIds);
按照预想的,它应该生成如下sql语句
select userName form t_user where userId in(1,2,3,4,5,6);
自测一下,发现无论userIdArr传多少个,都只能查出第一个,郁闷了半天