mybatis映射mapper文件的#{}和${}的理解

#{}会将要替换的内容加上类型格式,如:userIds为String类型的“1000,1001”,#{<userIds>}会被替换为带引号的字符串    "1000,1001",这时如果使用查询条件 IN(#{userIds})将变成IN("1000,1001")而不是 IN(1000,1001)。

${}会将要替换的内容以value直接替换,不会带任何格式,如果是SQL的字符串也能直接替换并被运行,所以在某些场景,可能被SQL注入的攻击者利用。

猜你喜欢

转载自www.cnblogs.com/mizhifei/p/10972353.html