在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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录