Mybatis多字段排序

        从前学习Spring开发的时候写过一个Web系统,后端采用Spring+SpringMVC+MyBatis,前端使用BootStrap和LigerUI,业务数据采用LigerUI的LigerGrid进行展示,由于LigerGrid只能支持单字段排序,有些时候业务需要进行多字段排序,刚好也准备重新换一下前端界面效果和框架,最近刚好看了下EasyUI,发现EasyUI是可以支持多字段排序的,就用EasyUI作为前端对工程进行了改造。

先放出LigerGrid单字段排序的实现过程:

前端传参(如下图):

Mybatis多字段排序

实体类中进行参数处理:

Mybatis多字段排序

mapper.xml映射文件中的代码,在where语句后面加上如下语句即可:

Mybatis多字段排序

现对上述代码进行改造,升级为可以支持多字段排序:

首先让前端EasyUI的datagrid打开多字段排序开关

设置multiSort:true。

Mybatis多字段排序

前端传参如下:sort和order为多字段,分别由逗号分隔

Mybatis多字段排序

实体类还是使用sortName和sortOrder字段进行接收,增加sortSql数组用于mapper中拼接sql

Mybatis多字段排序

mapper.xml中改造如下:

对sortSql列表进行遍历,拼接多个排序语句即可。注意:一般传参会用#{item}的形式,此处动态拼接多字段排序语序需要使用${item},否则会在你的排序语句上增加外层单引号(s.'module_name desc')导致sql语句解析不正确。

Mybatis多字段排序

到此为止,多字段排序改造完毕。

由于鄙人水平有限,如果文中出现任何问题和技术方面的错误,欢迎批评指正!请多多指教,谢谢。