我从前端收到了一组列。我需要SELECT -其中接收到的数组= 1。但是,数组的长度是动态的。
也就是说,应该为数组中接收到的每一列编写一个值为1的查询。
myArray有A,B,C我想写成这样
有可能吗?
发布于 2021-02-28 01:16:21
您需要使用tag (doc)。
要在批注中使用标签,您需要使用标签将整个语句括起来。
","SELECT * FROM reservation product_type = #{product_type} ","AND product_location = #{product_location} ","",”",“${columnName} = 1",“","","”}) List getOptionedProduct( @Param("product_type") String product_type,@Param("product_location") String product_location,@Param("myArray") List myArray);
如果您使用Java 15或更高版本,则可以从文本块(JEP-378)中获益。
因为myArray
是一个列名列表(对吗?),所以您必须使用${}
而不是#{}
。
因此,您需要确保myArray
不包含任何意外的字符串,以避免SQL注入等。
有关详细信息,请参阅FAQ条目。
https://stackoverflow.com/questions/66398702
复制相似问题