https://www.2cto.com/database/201806/752139.html
用了一段时间的Mybatis了,对于$和#的用法老是很迷糊,特此记下加深记忆。 简单来说 #{} 会在将参数加上引号,例如: SELECT * FROM user WHERE username=#{username} ; 带上参数后的SQL语句即: SELECT * FROM user WHERE username="XuLiTong" ; 而${}并不会在给参数加上引号,例如: SELECT * FROM user ORDER BY ${id} DESC LIMIT #{offset},#{limit}; 带上参数后的SQL语句为: SELECT * FROM user ORDER BY id DESC LIMIT 0,10; 可见,mybatis对参数没有进行任何的处理。通常${}用于GROUP BY,ORDER BY ,LIMIT等的后面。 但是,实际应用中,并不提倡使用 ${},因为使用 #{} 写法,除了可以防止sql注入以外,还能在参数里含有单引号的时候自动转义。
相关文章
- js中bind的用法,及与call和apply的区别
- Linux下的/etc/crontab文件和crontab -e命令区别及Crontab命令详解
- Java中return,break和continue的用法及区别
- having的用法及mysql中的where和having子句的区别
- 详解在group by分组查询中where 和 having的用法和区别。
- Javascript中Math.max和Math.max.apply的区别和用法详解
- css中字体常用单位px、em、rem和%的区别及用法总结
- Python中%r和%s的详解及区别_python_脚本之家
- Mybatis中#{}和${}传参的区别及#和$的区别小结
- IOS中复制对象的用法及深拷贝和浅拷贝详解