(面试题)#{} 和 ${}的区别是什么 扎心柯 2023-02-04 93 阅读1分钟 #{}相当于是预编译,所有传过来的参数都会被认为是普通字符 ${}相当于字符串拼接,所有传过来的字符都会被认为是SQL语句,有SQL注入的风险 举例,比如我输入密码 or '1' = '1',如果是#{}会认为这是密码内容。如果是${}会认为这是SQL语句,这非常危险,直接就登录成功了 细节:#在传值的时候会自动加双引号,$号就不会,所以order by语句不要用#,防止类型转换引起的索引失效