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