美文网首页
Mybatis中#{}和${}的区别

Mybatis中#{}和${}的区别

作者: 渐进逾 | 来源:发表于2020-03-29 12:11 被阅读0次

    在mybatis的mapper文件中,对于传递的参数我们一般是使用#和$来获取参数值。

    1.#{}是预编译处理,{}是字符串替换。 Mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值; Mybatis在处理{}时,就是把${}替换成变量的值。

    2.使用#{}可以有效的防止SQL注入,提高系统安全性。
    MyBatis排序时使用order by 动态参数时需要注意,用$而不是#

    1. 将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。

    2. $将传入的数据直接显示生成在sql中。
    3. 方式能够很大程度防止sql注入。

    4.方式无法防止Sql注入。 5.方式一般用于传入数据库对象,例如传入表名。

    1. {}方式一般用于传入字段值。

    7.一般能用#的就别用$。

    相关文章

      网友评论

          本文标题:Mybatis中#{}和${}的区别

          本文链接:https://www.haomeiwen.com/subject/dhiyuhtx.html