问题
最近有一个需求,需要前端告诉后端按照某个字段进行排序。这里主要侧重mybatis的xml实现,其他spring集成就忽略了。
mapper xml实现
<if test="sortfield != null and sortfield != ''"> order by <choose> <when test="sortfield == 'percapitaeffectivepoints'"> per_capita_effective_points ${sortorder} </when> <when test="sortfield == 'percapitacumulativepoints'"> per_capita_cumulative_points ${sortorder} </when> <otherwise> dept_name </otherwise> </choose> </if>
注意,这里使用的是$
而不是使用#
,如果使用#
语法mybatis拼接出来order by子句不符合sql语法。只能使用$
语法引用变量。这里还需要在java代码里面做一些防注入处理。类似如下:
string validatedsortorder = "desc".equalsignorecase(sortorder) ? "desc" : "asc";
后面使用validatedsortorder变量的数据传给mybatis就可以了。
到此这篇关于mybatis里面实现动态升降序的文章就介绍到这了,更多相关mybatis升降序内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论