之前在mybatis中取值一直用的#{},有次看同事的代码中用了${},但并未深究。
前几天有个需求要根据前端传过来的字段进行排序,代码没问题但就是一直没办法排序,到数据库一执行也能出结果。
最后发现是取值的问题。
用#{}取值时会默认加上”,如下:
order by 'name' desc
用${}取值时如下:
order by name desc
很明显,后者才是正确的。
但是一般我们还是会选择用#{},因为这样会进行sql预编译,防止sql注入。
之前在mybatis中取值一直用的#{},有次看同事的代码中用了${},但并未深究。
前几天有个需求要根据前端传过来的字段进行排序,代码没问题但就是一直没办法排序,到数据库一执行也能出结果。
最后发现是取值的问题。
用#{}取值时会默认加上”,如下:
order by 'name' desc
用${}取值时如下:
order by name desc
很明显,后者才是正确的。
但是一般我们还是会选择用#{},因为这样会进行sql预编译,防止sql注入。