order by 排序关键字要用#还是$
在MyBatis中,如果要使用动态参数来指定ORDER BY的排序关键字,应该使用${},而不是#{}。因为#{}会被解析为一个预编译参数,而${}则会直接替换为相应的值,这样可以避免SQL注入的风险。例如:
<select id="getUserList" resultType="User">
SELECT * FROM user
<if test="orderBy != null">
ORDER BY ${orderBy}
</if>
</select>
其中,如果orderBy的值为"name DESC",则会生成如下的SQL语句:
SELECT * FROM user ORDER BY name DESC
原文地址: https://www.cveoy.top/t/topic/fe5w 著作权归作者所有。请勿转载和采集!