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

实体类中进行参数处理:

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

现对上述代码进行改造,升级为可以支持多字段排序:
首先让前端EasyUI的datagrid打开多字段排序开关
设置multiSort:true。

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

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

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

到此为止,多字段排序改造完毕。
由于鄙人水平有限,如果文中出现任何问题和技术方面的错误,欢迎批评指正!请多多指教,谢谢。
本文介绍了如何在Mybatis中实现多字段排序,从前端EasyUI的datagrid配置,到后端实体类处理,再到mapper.xml的映射文件改造,详细阐述了整个过程,解决了LigerUI单字段排序的限制。
5316

被折叠的 条评论
为什么被折叠?



