mybatis实现动态升降序的问题小结
问题
最近有一个需求,需要前端告诉后端按照某个字段进行排序。这里主要侧重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升降序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
SpringBoot+Kafka出现CommitFailedException异常全面解析与解决方案
在日常开发中,如果你正在使用 Spring Boot 和 Kafka 来构建异步消息处理系统,那么你很可能会在日志文件中看到CommitFailedException错误,下面我们就来看看具体的解决方法吧2025-08-08
Spring Boot自动装配、启动流程、配置优先级问题记录
Spring Boot通过@EnableAutoConfiguration注解和条件注解,实现自动装配功能,但并非全自动,而是有条件,启动流程包括初始化SpringApplication实例和执行run()方法,本文介绍Spring Boot自动装配、启动流程、配置优先级问题记录,感兴趣的朋友跟随小编一起看看吧2025-12-12
Socket+JDBC+IO实现Java文件上传下载器DEMO详解
这篇文章主要介绍了Socket+JDBC+IO实现Java文件上传下载器DEMO详解,需要的朋友可以参考下2017-05-05


最新评论