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

${}和#{}的区别

作者: 熊猫的雄 | 来源:发表于2018-10-25 20:29 被阅读0次

    ${} 注入什么就是什么,且如果是简单类型的值需要用 value 来接收
    #{} 将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号

    例如

    Animal animal = mapper.findCarById("大熊猫");
    通过执行上述代码给 xml 中的 findCarById 方法注入参数实现下面sql语句的拼接
    
    SELECT * FROM animal WHERE name = "大熊猫"
    

    使用${}

    <select id="findAnimal rById" parameterType="java.lang.String" resultType="com.hello.pojo.Animal ">
            SELECT * FROM animal WHERE name = "${value}"
    </select>
    

    使用#{}

    <select id="findAnimal rById" parameterType="java.lang.String" resultType="com.hello.pojo.Animal ">
            SELECT * FROM animal WHERE name = #{name}
    </select>
    

    #方式能够很大程度防止sql注入;$方式无法防止Sql注入。
    $方式一般用于传入数据库对象,例如传入表名。
    一般能用#的就别用$。MyBatis排序时使用order by 动态参数时需要注意,用$而不是#。

    相关文章

      网友评论

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

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