mybatis实现动态升降序的问题小结

 更新时间:2025年02月08日 09:44:05   作者:亚林瓜子  
文章介绍了如何在MyBatis的XML文件中实现动态排序,使用$符号而不是#符号来引用变量,以避免SQL注入,同时,强调了在Java代码中进行防注入处理的重要性,感兴趣的朋友一起看看吧

问题

最近有一个需求,需要前端告诉后端按照某个字段进行排序。这里主要侧重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异常全面解析与解决方案

    SpringBoot+Kafka出现CommitFailedException异常全面解析与解决方案

    在日常开发中,如果你正在使用 Spring Boot 和 Kafka 来构建异步消息处理系统,那么你很可能会在日志文件中看到CommitFailedException错误,下面我们就来看看具体的解决方法吧
    2025-08-08
  • Spring 动态代理实现代码实例

    Spring 动态代理实现代码实例

    这篇文章主要介绍了Spring 动态代理实现代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • java实现图片缩放、旋转和马赛克化

    java实现图片缩放、旋转和马赛克化

    这篇文章主要为大家详细介绍了java实现图片缩放、旋转和马赛克化,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • logback日志输出格式设置方式

    logback日志输出格式设置方式

    这篇文章主要介绍了logback日志输出格式设置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • Java经典面试题之NIO多路复用

    Java经典面试题之NIO多路复用

    JAVA NIO 的多路复用是面试中经常被问的问题,今天我们彻底搞明白究竟是怎么回事,文中的示例代码讲解详细,希望对大家学习Java有所帮助
    2023-06-06
  • Spring Boot自动装配、启动流程、配置优先级问题记录

    Spring Boot自动装配、启动流程、配置优先级问题记录

    Spring Boot通过@EnableAutoConfiguration注解和条件注解,实现自动装配功能,但并非全自动,而是有条件,启动流程包括初始化SpringApplication实例和执行run()方法,本文介绍Spring Boot自动装配、启动流程、配置优先级问题记录,感兴趣的朋友跟随小编一起看看吧
    2025-12-12
  • java shiro实现退出登陆清空缓存

    java shiro实现退出登陆清空缓存

    本篇文章主要介绍了java shiro实现退出登陆清空缓存,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • Socket+JDBC+IO实现Java文件上传下载器DEMO详解

    Socket+JDBC+IO实现Java文件上传下载器DEMO详解

    这篇文章主要介绍了Socket+JDBC+IO实现Java文件上传下载器DEMO详解,需要的朋友可以参考下
    2017-05-05
  • mybatis-plus 实现分页查询的示例代码

    mybatis-plus 实现分页查询的示例代码

    本文介绍了在MyBatis-Plus中实现分页查询,包括引入依赖、配置分页插件、使用分页查询以及在控制器中调用分页查询的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-11-11
  • Springboot如何设置静态资源缓存一年

    Springboot如何设置静态资源缓存一年

    这篇文章主要介绍了Springboot如何设置静态资源缓存一年,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11

最新评论