p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 19.0px "PingFang SC" }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 19.0px "PingFang SC"; min-height: 26.0px }
span.s1 { font: 19.0px Helvetica }
MyBatis中#{ }和${ }的区别详解
1.#将传入的数据当成一个字符串,会对自动传入的数据加一个
双引号。
例如order by #id#,如果传入的值是111,那么解析成sql时变为order by “111”,如果传入的值是id,在解析成sql为order by “id”.
其实原来sql语句通常写成order by #{id} 与order by #id#的效果
一样。
2.$将传入的数据直接显示在sql语句中。例如order by${id},如果
传入的值则解析成sql语句为order by 9
3.#方式能够很大程度上防止sql注入,而$无法防止sql注入,
$一般用于传入数据库对象,例如传入表名,
一般能用#就别用$
4.mybatis排序是用order by动态参数时需要注意,用$而不是用
#。
5.查询语句使用别名来解决,#{ }是spring表达式,${ }是el表达式。
原文地址:https://www.cnblogs.com/shijinglu2018/p/9627712.html
时间: 2024-10-06 15:03:04