#{}与${}在sql中传参的区别
安全性不同
#{}传参能有效防止sql注入的问题,#{password}传参预编译的时候id是用’?'站位符代替的。
例如${}传参:输入 用户名: ’ or 1=1 –
密码:任意值即可
${}将传入的数据直接显示生成在sql中
做动态的排序,例如:order by column,要用这个,因为如果你使用了#{},那么打印出来的将会是select * from table order by ‘name’ ,这样是没用
源码分析:
selec count(*) from login where username=’ 任意值’ or 1=1 – and password=‘任意值’
所以推荐使用#{}传参