mybatis的xml文件中#{}和${}有什么区别和不同呢?
下文笔者讲述mybatis的mapper.xml文件中#{}和${}的区别,如下所示:
#{}和${}区别:
两者在功能上完全不同,
${}是字符串替换
#{}是预处理
-----------------------------------------------------
使用#{}可以有效的防止SQL注入,提高系统安全性
-----------------------------------------------------
#{}和${}处理原理上
Mybatis处理${}时
其原理为:将${}直接替换成变量的值
Mybatis在处理#{}时
其原理为:对sql语句进行预处理
将sql中的#{}替换为?号
然后调用PreparedStatement的set方法来赋值
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


