首先$和#的区别:
- 都是往sql语句里面进行动态传值,但是$是单纯的字符串替换,而#是进行JDBC的预编译语句会在sql语句之中生成一个占位符。具体在sql中的效果就是:例如传入1 $ 就是单纯的 1 但是#实际生成的就是‘1’
- 感觉$和#就很像JDBC中的Statement和preStatement一样 #可以有效的作用于防止sql注入
多数情况下我们都是选择使用#而非$但是在一定的情况下只能使用$(需要插入需要查询的字段名而不是值的时候 如果字段名称使用#包裹的话是不会被识别,只有值被#包裹的时候才能被识别)具体应该是值被引号包裹的才能识别 。`
本文详细介绍了MyBatis中#与$符号在SQL语句动态传值时的不同作用。$符号进行简单的字符串替换,而#则生成预编译语句中的占位符,起到防止SQL注入的作用。大多数场景推荐使用#,但在需要传入字段名而非值时,则需使用$。

被折叠的 条评论
为什么被折叠?



