2023.03.16 Mybatis中 $ 与 # 的区别是什么
作者:
薛定谔的猴子 | 来源:发表于
2023-03-15 23:13 被阅读0次
mybatis中$和#的区别是:
-
#{}
是将传入的值当做字符串的形式,会自动给其添加引号,例如:id = #{id}
,如果id的值是1,则SQL解析为:id = '1'
。
-
${}
是将传入的值直接拼接到SQL语句中,不会添加引号,例如:id = ${id}
,如果id的值是1,则SQL解析为:id = 1
。
-
#{}
可以防止SQL注入攻击,因为它会先用占位符代替参数进行预编译,然后再将参数中的内容替换进来。${}
则不能防止SQL注入攻击,因为它会直接将参数和SQL语句拼接形成完整的命令后再进行编译。
-
${}
适用于表示字段名、表名等需要直接拼接到SQL语句中的情况,例如:order by ${columnName}
。#{}
则不适用于这种情况,因为它会给字段名、表名加上引号导致错误。
本文标题:2023.03.16 Mybatis中 $ 与 # 的区别是什么
本文链接:https://www.haomeiwen.com/subject/lbsrrdtx.html
网友评论