今天遇到一个问题,要在mybatis的语句中把string传入in,如果用#{} ,则会被解析成一个参数,比如:
#('aa,bb,cc'),网上有一个解决方法,使用“${}”解决,不过#{} 传入参数可以预防sql注入攻击,而“${}”不行,所以不推荐该方法。
我自己想了一个笨方法,如果能确定in的选项个数不多,10个以内,可以采用逐个添加,比如:
xxx xxx(...
@Param("aa") String aa,
@Param("bb") String bb,
@Param("cc") String cc
...);
in (#{aa},#{bb},#{cc})
这样就万无一失了。