Mybatis传参使用order by排序无效问题解决方法

今天遇到这么个问题,用easyui的romoteSort进行单个字段的全局排序

在sql上拼接order by  #{sort:VARCHAR}   #{order:VARCHAR}

传参没问题,sql能正常执行,debug返回列表很明显没有排序啊

一步一步排除,确定问题出在sql

对于这种#{sort:VARCHAR} 的变量,Mybatis会将其视为字符,给变量值加上引号

假如传入参数是count,desc  就是order by 'count' 'desc'

这个结果在日志里也发现不了什么问题,也能正常执行只是过滤了order by

找了好久发现这个问题

对于${sort}的变量,Mybatis会将其视作直接变量,不会再给其加上引号

假如传入参数是count,desc  就是order by count desc

这就是想要的结果

你可能感兴趣的:(Mybatis传参使用order by排序无效问题解决方法)