解决方法:order by 传参的时候要用$符号,用#不生效(尽管在控制台看到的生成语句是正确的)
原因:
因为安全性,默认情况下,使用#{}格式 MyBatis创建预处理语句属性并以它为背景设置安全的值(比如?占位符)。
如果只想直接在SQL语句中插入一个不改变的字符串。比如,像ORDER BY,你可以这样来使用:
ORDER BY ${param}
这里MyBatis不会修改或转义字符串。
重要提示:接受从用户输出的内容并提供给语句中不变的字符串,这样做是不安全的。可能导致SQL注入