mybatis中占位符#{}和${}区别说明
下文笔者讲述mybatis中占位符#{}和${}的区别说明,如下所示
#{}是占位符
预编译处理
可以防止SQL注入
${}是拼接符
字符串替换
没有预编译处理
不能防止SQL注入
mybatis处理${}和#{}注意事项
Mybatis处理#{}时
#{}传入参数是以字符串传入
会将SQL中的#{}替换为?号
调用PreparedStatement的set方法来赋值
Mybatis处理${}时
是原值传入
把${}替换成变量的值
相当于JDBC中的Statement编译
#{}变量替换是在DBMS中
变量替换后
#{}对应的变量自动加上单引号
${}变量替换是在DBMS外
变量替换后
${}对应变量不会加上单引号
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


