关于#和$的思考

#和$符号在Mybatis和Spring中出现的频率都很高。

在Mybatis里#{}是安全的取值方式,会以PreparedStatement的参数值方式解析到sql语句,能够防止sql注入攻击;${}方式是不安全的取值方式,它会把值直接拼接到sql语句,存在sql注入攻击的风险。

spring里的${}代表注入一个配置文件里的值;#{}注入一段表达式(SpEL表达式)的计算结果。

对于#和$的用法,是不是过段时间就分不清楚谁对谁了呢?

为了方便记忆,可以对#和$在mybatis和spring里的用法做一个归纳总结:
    #代表的是表达式,会被编译运算;$代表的是字面值,是一个字符串。
这种总结,在mybatis和spring都适用。
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 撸撸猫 设计师:C马雯娟 返回首页