mybatis #{}和${}区别
#{}和${}区别
区别:
#{}能够在很大程度上防止sql注入,%{}不行;
原因:
#{}将传入的数据都当成一个字符串,会对传入内容加一个双引号。如:order by #{param},若传入值为:xxx,则解析成的sql为:order by "xxx";
${}将传入的数据直接显示在生成的sql中。如:order by ${param},若传入值为:xxx,则解析成的sql为:order by xxx。
常用:
一般能用#就别用$,在传入用户输入数据时用#,在获取系统字段时一般用$。
$类似于字符串拼接,在拼接表名时会用到;
#相当于?占位,sql语句中尽量用#