解决mybatis中order by排序无效问题

1、#将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #{user_id},如果传入的值是111,那么解析成sql时的值为order by "111", 如果传入的值是id,则解析成的sql为order by "id"。

2、$将传入的数据直接显示生成在sql中。如:order by ${user_id},如果传入的值是111,那么解析成sql时的值为order by 111, 如果传入的值是id,则解析成的sql为order by id。

3、#方式能够很大程度防止sql注入。

4、$方式无法防止Sql注入。

5、$方式一般用于传入数据库对象,例如传入表名。

6、一般能用#的就别用$。

ps: 在使用mybatis中还遇到<![CDATA[]]>的用法,在该符号内的语句,将不会被当成字符串来处理,而是直接当成sql语句,比如要执行一个存储过程。

所以order by 之后要使用$而非#。

补充知识:MyBatis-plus数据库字段排序不准确

目录标题

1:今天用mybatis-plus进行开发的时候遇到一个问题,就是用mysql自带的排序进行数据排序的时候,发现排序的数据不准确。

1:今天用mybatis-plus进行开发的时候遇到一个问题,就是用mysql自带的排序进行数据排序的时候,发现排序的数据不准确。

例如:12还没有8,4,2大,这就很郁闷了。

解决mybatis中order by排序无效问题

后来在网上查了一下,原来是自己给自己挖的坑,数据库排序字段用的是varcher类型,而排序函数针对的是number类型。

解决mybatis中order by排序无效问题

解决方案:

对于mysql和oracle都实用

order by 字段+0

order by 字段*1

解决mybatis中order by排序无效问题

解决mybatis中order by排序无效问题

因为用的是mybatis-plus,不想写sql怎么办呢?那就用自带的排序函数喽。排序字段直接"+1"就Ok了

//倒叙

queryWrapper.orderByDesc("visit_num+1");

以上这篇解决mybatis中order by排序无效问题就是小编分享给大家的全部内容了,希望能给大家一个参考。

猜你在找的解决mybatis中order by排序无效问题相关文章

今天学习了一个新技能SpringBoot实现异步任务,所以特地整理了本篇文章,文中有非常详细的介绍及代码示例,需求的大佬可以参考下
了rabbitmq中routingkey的作用说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
今天给大家整理的文章是SpringBoot定时任务的相关知识点,文中有非常详细的介绍及代码示例,对正在学习SpringBoot任务的小伙伴们很有帮助,需求的大佬可以参考下
今天给大家整理的文章是SpringBoot邮件任务的相关知识点,文中有非常详细的介绍及代码示例,对正在学习SpringBoot任务的小伙伴们很有帮助,需求的大佬可以参考下
本文给大家分享小编一些心得体会,主要是学习SSM框架之后的收获吧,重点给大家介绍SSM框架流程以及原理分析,通过图文实例相结合给大家介绍的非常详细,需要的朋友参考下
今天带大家学习Java设计模式的相关知识点,文中对Java行为型模式做了非常详细的介绍及代码示例,对正在学习java的小伙伴们很有帮助,需求的大佬可以参考下
今天带大家学习Java并发编程的相关知识,文中对Fork/Join框架作了非常详细的介绍,对正在学习有关知识的小伙伴们很有帮助,需求的大佬可以参考下
今天给大家带来的文章是Java并发编程的相关知识,文中对java同步容器与并发容器做了非常详细的介绍及代码示例,需求的大佬可以参考下
在实际开发中需要将操作系统编码、文件编码、页面编码以及tomcat服务器编码保持一致,而tomcat在默认情况下是使用UTF-8,这就使得其打印的日志文件出现中文乱码,因此
我们知道分库分表是针对某些数据量持续大幅增长的表,比如用户表、订单表等,而不是一刀切将全部表都做分片,了springboot整合shardingjdbc实现分库分表最简单demo,需
了解决SpringSecurity 一直登录失败的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
了request如何获取body的json数据操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教