${}是一种js表达式,用以将变量函数等插入字符串种
在数据库查询中的应用:
- ${}会直接替换掉sql语句使用${}的部分,(所以会有sql注入的风险);
- #{} 会进行编译处理,会将{}里面的内容看成一个整体,预处理后会自动给内容加上单引号;(不会存在sql注入)
- ${}可以进行排序、模糊查询
- #{}不能排序查询,(因为自动加上单引号的原因,导致select * from userinfo order by id ‘desc’)。可以模糊查询,但是要借助mysql内置函数concat; (select * from userinfo where username like concat('%', #{key}, '%'))