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