前提: order by #{param1} #{param2} ,排序字段 和 排序顺序字段是作为参数传递进来的
因为#{}格式的语法会将sql语句进行预处理,最终会用字符串替换 传递进来的参数,这时排序就不起作用了,我们可以用order by ${param1} ${param2} 来替换。但是,这会导致潜在的SQL注入攻击,因此不应该允许用户输入这些字段。
如果排序字段必须是由用户传递进来的,那么,就必须手动过滤一下输入的内容,判断输入的参数的长度是否正常(注入语句一般很长),更精确的判断输入的参数是否安全 或者非法