匹配是占位符,相当于JDBC之一?它将过滤一些敏感的字符。编译后,将使用双引号添加传输值,因此SQL可以防止SQL注入问题。
它与传输的真实值匹配。传输后,它将用SQL语句缝制。$ {}用其他SQL缝线无法阻止SQL注入问题。
以MySQL为例,#{}使用com.mysql.cj.clientpredquerybindings#setString方法,其中将在此处处理一些特殊字符:
因此,处理后
$ {}只是一个简单的缝线字符串,没有其他处理。
通过这种方式,它们成为:
因此,注射SQL的风险。
原始:https://juejin.cn/post/7095247774812698535