在Mybatis中,参数类型用于存在。SQL中占据的参数符号具有#{}和$ {}。让我们看一下特定的用法方法。
{test1param}:#APFLOW符号在填充SQL时会预先组合。使用#时,将#{test1param}设置为测试,并将其作为以下代码执行。
执行时,Mybatis将转换为以下SQL语句:
$ {test1param}:填充SQL时,$占用的符号未预先填写。填充$占用的符号时,将$ {test1param}设置为测试,并且执行是以下代码。
执行时,Mybatis将转换为以下SQL语句:
可以从上面的代码中可以看出$占用的符号具有SQL注入的问题,因为尚未汇总引入的参数,并且一旦执行执行,将直接执行数据; PRE -POPILATION;在此SQL注入问题中不存在。
由于注射SQL的风险很高,因此我们强烈建议在开发过程中使用#位置符号。毕竟,在开发系统时,安全是我们需要考虑的一个非常重要的一点。
但是总会有$的情况,例如传递到IN的值,例如下面的代码。
如上所述,您可以执行注射。可以通过Java代码缝制它,然后可以由$占用进行注射操作。
