1、 #{}相当于占位符,而${}相当于字符串拼接

eg: select * from user where username = #{v}

这句sql 没问题。  比如我们传递的参数是 王五  ,  那么#{v}  等同于 '王五'

eg: select * from user where username = ${v}

这句sql就报错。比如我们传递的参数是 王五  ,那么 ${v} 等同于 王五 

sql 就等同于 select * from user where username = 王五 ,而这个username 是字符串类型的。

 

2、#{}里面可以随便写,而${}里面只能写  value

 

3、#{}防sql注入,但是${} 不可以

 

为了防止sql注入这里给出一个使用 #{} 来模糊查询的例子

 

select * from user where username like "%"#{}"%";