Mybatis 之 #{} 和 ${} 的区别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Tomwildboar/article/details/82805197

Mybatis 之 #{} 和 ${} 的区别

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 "%"#{}"%";

猜你喜欢

转载自blog.csdn.net/Tomwildboar/article/details/82805197