#{}:
注:其实原sql语句通常写成 order by #{id} 与order by #id#的效果一样
将传入的数据都当作一个字符串,会对自动传入的数据加一个双引号。
例:id=111,order by #{id} 经过解析变成:order by "111"
${} :
注:将传入的值直接显示在sql语句中
例:id=111,order by ${id}经过解析变成:order by 9
区别:
#的方式能够很大程度防止sql注入,而$无法防止sql的注入
$一般用于传入数据库对象,
例如传入表名
一般能用#就别用$
mybatis排序时使用order by动态参数时需要住哟,使用$而不是#