-
'#' 和 '$' 的区别:
-
mybatis中使用ParameterType向sql语句传参,在sql语句中引用这些参数的时候,有两种方式:#parameterName 和 $parameterName。
-
#parameterName 方式引用参数时,Mybatis会把传入的参数当成是一个字符串,自动添加双引号。
-
$parameterName 方式引用参数时,不做任何处理,直接将值拼接在SQL语句中。
-
'#' 是占位符,$ 是拼接符。
-
-
'#' 可以防止SQL注入:
-
使用 # 能够防止SQL注入,$ 不能避免注入攻击。
-
'#' 的方式引用参数,mybatis 会先对SQL语句进行预编译,然后再引用值,能够有效防止SQL注入,提高安全性。
-
$ 的方式应用参数,SQL语句不进行预编译。
-