1 # 與 $ 的區別
mybatis中使用ParameterType向sql語句傳參,在sql語句中引用這些參數的時候,有兩種方式:#parameterName, $parameterName。
兩者的區別:使用#parameterName方式引用參數的時候,Mybatis會把傳入的參數當成是一個字符串,自動添加雙引號。$parameterName引用參數時,不做任何處理,直接將值拼接在sql語句中。
#是一個占位符,$是拼接符。
2 如何防止sql注入
使用 # 能夠防止sql注入,$不能避免注入攻擊。
#的方式引用參數,mybatis會先對sql語句進行預編譯,然后再引用值,能夠有效防止sql注入,提高安全性。$的方式引用參數,sql語句不進行預編譯。