MyBatis 关于order by失效
order by作为一个常用的功能,在项目中应该经常用到。
今天在实现根据传入排序指标参数进行排序时,遇到order by没有生效问题。
起先SQL如下:
我用的是 (1):#运算符,Mybatis会将传入的对象当成一个字符串,在进行变量替换时会加上引号
比如rankingMethod="time", sql语句是
ODERR BY "time" DESC
正常应该是 ODERR BY time DESC 不要双引号!
那该怎么改呢?
方法:
一:不用#,(2):使用$运算符,Mybatis不会进行预编译,直接把值传进去,无法防止sql注入
二:用枚举
参数少的时候方便,而且没有sql注入隐患
最后来总结下#和$
- 预编译sql有缓存作用,非预编译没得
- 预编译一次编译、多次运行,省去了解析优化等过程;此外预编译语句能防止sql注入。
- $方式一般用于传入数据库对象,例如传入表名、排序规则等
- 一般能用#的就别用$。
深入了解:http://www.cnblogs.com/yanspecial/p/5659429.html
MyBatis 关于order by失效相关推荐
- mysql order by子查询_sql子查询 order by失效问题
一.问题描述 三表联合查询 按主表的时间倒叙并分页 下面sql语句 ORDER BY失效 ,如果把 ORDER BY 放在最后 比如有20条数据 第一页会是10 -1 第二页是20-11 分页 ...
- mybatis多字段排序_解决mybatis中order by排序无效问题
1.#将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号.如:order by #{user_id},如果传入的值是111,那么解析成sql时的值为order by "111&qu ...
- group by 后面 order by 失效问题
条件: 查询出学生最后一次的成绩. 全部数据显示: mysql5.6 使用sql: select a.score,a.name from ( select * from hehe order by i ...
- Spring整合MyBatis导致一级缓存失效问题
熟悉MyBatis的小伙伴都知道MyBatis默认开启一级缓存,当我们执行一条查询语句后,MyBatis会以我们查询的信息生成一个缓存key,查询的结果为value,存到一个map中,即存入一级缓存. ...
- MyBatis一级缓存及失效
MyBatis提供了查询缓存机制,对于大量重复的查询使用缓存可以减轻数据库压力. 官网介绍 MyBatis 内置了一个强大的事务性查询缓存机制,它可以非常方便地配置和定制. 为了使它更加强大而且易于配 ...
- Mybatis<selectKey>失效问题踩坑记录
selectKey 会将 SELECT LAST_INSERT_ID()的结果放入到传入的实体类的主键里面, keyProperty对应的实体类中的主键的属性名,这里是 实体类中的id,因为它跟数据库 ...
- Spring自定义数据源配置不当引起的Mybatis拦截器Interceptors 失效/不生效
目录 内容 Interceptor接口与@Intercepts注解 PageHelper实现拦截器 默认数据源与拦截器 自定义数据源与拦截器的问题 自定义数据源注入拦截器 内容 Interceptor ...
- Mybatis分页插件PageHelper失效
1,场景 错误: //因为查询前要先去数据库查询几个条件,就会查询数据库.导致分页参数被(1)号查询消费了,所以(2)查询就没有使用到分页参数 public PageInfo<ArticleIn ...
- mysql5.6 排序失效_mysql 使用union(all) + order by 导致排序失效
1.SQL1如下 SELECT aa.* FROM apas_smoke aa WHERE STATUS = 0 AND aa.area_id = 'd61523dda339441f80008634c ...
最新文章
- 观点 | 哈哈,TensorFlow被吐槽了吧
- java readline读取最后一行_java的转换流解析
- java.lang.date_无法将java.lang.String类型的值转换为必需类型java.util.Date
- MapReduce Java API-使用Partitioner实现输出到多个文件
- 《机器学习实战》chapter 07利用AdaBoosting元算法提高分类性能
- 在一台电脑上运行两个或多个tomcat
- JavaScript算法(实例六)输出日期 / 数组合并 / 小球下落--反弹运动
- vscode中如何创新建php文件,php – 如何在Visual Studio Code,UNIX中的所有文件中创建所有行结尾(EOL)?...
- PowerEdge r730xd 安装centos 6.7
- 模型相关:修改模型的坐标原点到用户的自定义位置
- 服务器系统怎样设置定时开关机,如何配置服务器定时开关机
- 下载各种在线视频及字幕
- web调用qq临时会话
- python turtle画彩虹的代码_Python turtle画图库画姓名实例
- 六方ZnS包裹碳纳米管复合粉体/PbS纳米晶原位包裹碳纳米管的复合材料/壳聚糖包裹的多壁碳纳米管
- python高德 查询县_Python和高德开放平台——地名地址空间化及采集POI信息
- 惰性学习算法 ---- k 近邻算法
- 海康/大华SDK视频智能分析安防监控系统EasyCVR集成iframe播放分屏出现滚动条原因排查
- lol12月25服务器维护,LOL12月25日更新到几点 LOL8.24B更新维护公告
- CUDA11.4装pytorch