mybatis ${} 即相当于替换里面的内容,字符串替换,将sql中${} 替换成后面的变量,是没有带引号(’),所以有可能存在sql注入攻击。
mybatis #{} mybatis在处理时,会将其变成?然后调用PreparedStatement的set方法来赋值,传入字符串后,会在值两边加上单引号,所以不存在sql注入攻击。
区分应用场景,一般传入 字段的值等用#{},传入的是表名,或者字段名用 #{} 例如 group by ${}等。
mybatis ${} 即相当于替换里面的内容,字符串替换,将sql中${} 替换成后面的变量,是没有带引号(’),所以有可能存在sql注入攻击。
mybatis #{} mybatis在处理时,会将其变成?然后调用PreparedStatement的set方法来赋值,传入字符串后,会在值两边加上单引号,所以不存在sql注入攻击。
区分应用场景,一般传入 字段的值等用#{},传入的是表名,或者字段名用 #{} 例如 group by ${}等。