Mybatis中#{}和${}的区别
2020-03-29 本文已影响0人
渐进逾
在mybatis的mapper文件中,对于传递的参数我们一般是使用#和$来获取参数值。
1.#{}是预编译处理,{}时,就是把${}替换成变量的值。
2.使用#{}可以有效的防止SQL注入,提高系统安全性。
MyBatis排序时使用order by 动态参数时需要注意,用$而不是#
-
将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。
- $将传入的数据直接显示生成在sql中。
-
方式能够很大程度防止sql注入。
4.方式一般用于传入数据库对象,例如传入表名。
-
{}方式一般用于传入字段值。
7.一般能用#的就别用$。