MySQL 中 # 和 $ 的区别

184 阅读1分钟
  1. '#' 和 '$' 的区别:

    1. mybatis中使用ParameterType向sql语句传参,在sql语句中引用这些参数的时候,有两种方式:#parameterName 和 $parameterName。

    2. #parameterName 方式引用参数时,Mybatis会把传入的参数当成是一个字符串,自动添加双引号。

    3. $parameterName 方式引用参数时,不做任何处理,直接将值拼接在SQL语句中。

    4. '#' 是占位符,$ 是拼接符。

  2. '#' 可以防止SQL注入:

    1. 使用 # 能够防止SQL注入,$ 不能避免注入攻击。

    2. '#' 的方式引用参数,mybatis 会先对SQL语句进行预编译,然后再引用值,能够有效防止SQL注入,提高安全性。

    3. $ 的方式应用参数,SQL语句不进行预编译。