#{}和${}的区别是什么?

水深无声 2022-08-28 05:56 453阅读 0赞

#{}是预编译处理、是占位符,
{}是字符串替换、是拼接符
Mybatis 在处理#{}时,会将 sql 中的#{}替换为?号,调用 PreparedStatement 来赋值;
Mybatis 在处理 时 , 就 是 把 {}时, 就是把 时,就是把{}替换成变量的值,调用 Statement 来赋值;
#{} 的变量替换是在DBMS 中、变量替换后,#{} 对应的变量自动加上单引号
的 变 量 替 换 是 在 D B M S 外 、 变 量 替 换 后 , {} 的变量替换是在 DBMS 外、变量替换后, 的变量替换是在DBMS外、变量替换后,{} 对应的变量不会加上单引号
使用#{}可以有效的防止 SQL 注入, 提高系统安全性。

发表评论

表情:
评论列表 (有 0 条评论,453人围观)

还没有评论,来说两句吧...

相关阅读