order by作为一个常用的功能,在项目中应该经常用到。

今天在实现根据传入排序指标参数进行排序时,遇到order by没有生效问题。

起先SQL如下:

我用的是 (1):#运算符,Mybatis会将传入的对象当成一个字符串,在进行变量替换时会加上引号

比如rankingMethod="time", sql语句是

ODERR BY "time" DESC

正常应该是 ODERR BY time DESC    不要双引号!

那该怎么改呢?

方法:

一:不用#,(2):使用$运算符,Mybatis不会进行预编译,直接把值传进去,无法防止sql注入

 二:用枚举

参数少的时候方便,而且没有sql注入隐患

最后来总结下#和$

  1. 预编译sql有缓存作用,非预编译没得
  2. 预编译一次编译、多次运行,省去了解析优化等过程;此外预编译语句能防止sql注入。
  3. $方式一般用于传入数据库对象,例如传入表名、排序规则等
  4. 一般能用#的就别用$

深入了解:http://www.cnblogs.com/yanspecial/p/5659429.html

MyBatis 关于order by失效相关推荐

  1. mysql order by子查询_sql子查询 order by失效问题

    一.问题描述  三表联合查询  按主表的时间倒叙并分页 下面sql语句 ORDER BY失效 ,如果把 ORDER BY  放在最后 比如有20条数据 第一页会是10 -1 第二页是20-11  分页 ...

  2. mybatis多字段排序_解决mybatis中order by排序无效问题

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

  3. group by 后面 order by 失效问题

    条件: 查询出学生最后一次的成绩. 全部数据显示: mysql5.6 使用sql: select a.score,a.name from ( select * from hehe order by i ...

  4. Spring整合MyBatis导致一级缓存失效问题

    熟悉MyBatis的小伙伴都知道MyBatis默认开启一级缓存,当我们执行一条查询语句后,MyBatis会以我们查询的信息生成一个缓存key,查询的结果为value,存到一个map中,即存入一级缓存. ...

  5. MyBatis一级缓存及失效

    MyBatis提供了查询缓存机制,对于大量重复的查询使用缓存可以减轻数据库压力. 官网介绍 MyBatis 内置了一个强大的事务性查询缓存机制,它可以非常方便地配置和定制. 为了使它更加强大而且易于配 ...

  6. Mybatis<selectKey>失效问题踩坑记录

    selectKey 会将 SELECT LAST_INSERT_ID()的结果放入到传入的实体类的主键里面, keyProperty对应的实体类中的主键的属性名,这里是 实体类中的id,因为它跟数据库 ...

  7. Spring自定义数据源配置不当引起的Mybatis拦截器Interceptors 失效/不生效

    目录 内容 Interceptor接口与@Intercepts注解 PageHelper实现拦截器 默认数据源与拦截器 自定义数据源与拦截器的问题 自定义数据源注入拦截器 内容 Interceptor ...

  8. Mybatis分页插件PageHelper失效

    1,场景 错误: //因为查询前要先去数据库查询几个条件,就会查询数据库.导致分页参数被(1)号查询消费了,所以(2)查询就没有使用到分页参数 public PageInfo<ArticleIn ...

  9. mysql5.6 排序失效_mysql 使用union(all) + order by 导致排序失效

    1.SQL1如下 SELECT aa.* FROM apas_smoke aa WHERE STATUS = 0 AND aa.area_id = 'd61523dda339441f80008634c ...

最新文章

  1. 观点 | 哈哈,TensorFlow被吐槽了吧
  2. java readline读取最后一行_java的转换流解析
  3. java.lang.date_无法将java.lang.String类型的值转换为必需类型java.util.Date
  4. MapReduce Java API-使用Partitioner实现输出到多个文件
  5. 《机器学习实战》chapter 07利用AdaBoosting元算法提高分类性能
  6. 在一台电脑上运行两个或多个tomcat
  7. JavaScript算法(实例六)输出日期 / 数组合并 / 小球下落--反弹运动
  8. vscode中如何创新建php文件,php – 如何在Visual Studio Code,UNIX中的所有文件中创建所有行结尾(EOL)?...
  9. PowerEdge r730xd 安装centos 6.7
  10. 模型相关:修改模型的坐标原点到用户的自定义位置
  11. 服务器系统怎样设置定时开关机,如何配置服务器定时开关机
  12. 下载各种在线视频及字幕
  13. web调用qq临时会话
  14. python turtle画彩虹的代码_Python turtle画图库画姓名实例
  15. 六方ZnS包裹碳纳米管复合粉体/PbS纳米晶原位包裹碳纳米管的复合材料/壳聚糖包裹的多壁碳纳米管
  16. python高德 查询县_Python和高德开放平台——地名地址空间化及采集POI信息
  17. 惰性学习算法 ---- k 近邻算法
  18. 海康/大华SDK视频智能分析安防监控系统EasyCVR集成iframe播放分屏出现滚动条原因排查
  19. lol12月25服务器维护,LOL12月25日更新到几点 LOL8.24B更新维护公告
  20. CUDA11.4装pytorch

热门文章

  1. 网页通栏广告的编写技巧
  2. 基于python的股票客户流失数据分析模型
  3. 数据库界的《延禧攻略》来了,不看你就输了
  4. 热播剧《延禧攻略》进入台湾2019年学测语文试题
  5. 使用Apifox解决测试文件下载出错问题
  6. DevpTips【powerpoint】发现打不开,显示发现文件中的内容有问题。可尝试修复此演示文稿。
  7. linux 性能分析工具——perf
  8. 免安装版mysql使用_免安装版MySql使用
  9. LaTeX学习---字体设置
  10. NM_CUSTOMDRAW消息