在Mybatis中,#{}和${}的区别是什么
时间: 2023-11-01 13:19:09 浏览: 107
MyBatis中#号与美元符号的区别
5星 · 资源好评率100%
在Mybatis中,#{}和${}都是用于传递参数的方式,但它们的处理方式是不同的。
#{}使用预编译的方式,可以防止SQL注入攻击,同时也可以自动处理特殊字符,比如转义字符等。在SQL执行时,#{}会将参数值以占位符的形式替换掉,这样可以避免SQL注入攻击。
${}则是直接将参数值拼接到SQL语句中。在SQL执行时,${}不会对参数进行任何处理,而是直接将参数值替换到SQL语句中,因此可能存在SQL注入攻击的风险。同时,${}也无法自动处理特殊字符,比如转义字符等。
因此,推荐在使用Mybatis时,优先使用#{}传递参数,以保证SQL的安全性和可靠性。
阅读全文