1.#{}将传入的数据都当成是一个字符串,会自动给数据加上引号。eg:#{id}="id";${}将传入的数据直接显示在sql中,eg:${id}=id。
2.#{}是一个占位符,能够防止sql注入;${}是一个拼接符号,不能够防止sql注入。
3.都可以接受简单类型,pojo,hashmap。当接受简单类型的时候,#{}中可以写成value或其它名称,${}中只能写成value.
4.能用#{}的地方就建议用#{},毕竟安全性是我们要考虑的。但是有些特定的地方要用${},比如Mybatis排序时ORDER BY动态参数时要用${}而不是#{}。