"#{}"与"${}"是为了动态传递参数而存在的,总体作用是一致的,但是在编译过程中,是否自动添加单引号,安全性,使用场景等方面有很多不同。
一、区别汇总
- 编译过程
1.#{}是 占位符 :动态解析 -》 预编译 -》 执行
2.${}是 拼接符 :动态解析 -》 编译 -》 执行
预编译可以类比java类的编译,java类被编译成class文件,载入虚拟机,sql预编译后会在参数位置用占位符表示
转自:https://blog.csdn.net/weixin_41231928/article/details/105120292