1、#相当于对数据 加上 单引号,$相当于直接显示数据
2、一般能用#的就别用$,首先这是为了性能考虑的,相同的预编译 sql 可以重复利用。使用#也可以有效防止SQL注入。
3、#{ } 被解析为一个参数占位符 ? ,${ } 仅仅为一个纯碎的 string 替换,在动态 SQL 解析阶段将会进行变量替换。
4、表名作为变量时,必须使用 ${ },使用#{} sql 占位符替换字符串时会带上单引号 \'\',这会导致 sql 语法错误
5、${}基本类型只能是${value}
分享几篇写个比较好的:
https://www.cnblogs.com/sibuhuigai/p/10646427.html
https://blog.csdn.net/u013552450/article/details/72528498/