mybatis #{…}与${…}差异小议

    xiaoxiao2021-04-15  51

    MyBatis官方文档http://code.google.com/p/mybatis/wiki/faq)对两者的描述是:#{…}是一个参数标记,而${…}只是简单的字符串替换。一般而言,为避免SQL注入攻击,传递参数应使用#{…}方式,因为这样MyBatis会处理好特殊字符转义的问题;但在SQL语句的某些地方,又不能使用#{…}方式。上述文档举出的例子是不能用这种方式指定表名,而根据我们的经验,在order by子句中也不能用这种方式。从中我们可以总结出:对于诸如表名、字段名如order by子句后的排序字段)这些表本身或其字段的名字,和SQL关键字如order by子句后的asc关键字),是不能使用#{…}方式的,而只能使用字符串替换的${…}方式。
    转载请注明原文地址: https://ju.6miu.com/read-671204.html

    最新回复(0)