文档章节

Mybatis--动态设定 字段 order by 排序

l
 lnt123
发布于 2016/07/11 14:39
字数 279
阅读 101
收藏 0

今天测试发现了个项目BUG,说是查询的列表没有排序。查看代码如下:

代码中已经对SQL进行了排序。再次运行代码,发现查询结果还是没有排序。于是查看打印日志:

将语句和参数放入工具navicate for mysql 发现没问题。

上网搜索发现,原来是mybatis问题,mybatis SQL文件中 #符号将传入的数据都当做一个字符串,会对数据增加一个引号,如 order by #{ userid } , userid对应的值是10001,解析后就是 order by '10001' 。

$符号将传入的数据直接显示在sql中。如 order by ${ userid } , userid对应的值是10001,解析后结果为 order by userid 。将 sql中的#改成$发现果然结果可以。

再次搜索发现 #可以最大程度防止sql注入,$则无法防止sql的注入,一般课可以传入数据库对象,比如表明或者字段名称。使用的时候需要注意。

决定还是改用pagebounds排序

© 著作权归作者所有

共有 人打赏支持
l
粉丝 0
博文 1
码字总数 279
作品 0
长沙
Mybatis中的$和#的区别

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

程序猿之小菜鸟
2016/06/20
5
0
mybatis中的#和$的区别

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

动听的椰子
2016/04/06
29
0
mybatis中的#{value}和${value}的区别

#{value}将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。 ${value}将传入的数据直接显示生成在sql中。 #{value}方式能够很大程度防止sql注入。  4.${value}方式无法防止S...

北國丶江山
2016/09/05
52
1
mybatis动态添加排序条件参数设置

不能使用#{},因为会默认加上引号(ORDER BY '字段' 'DESC/ASC'),导致排序无效

Kylin_Shaw
2016/02/26
133
0
Mybatis中#和$的区别

tips: 能用#的就别用$. Mybatis中进行参数传递,可以使用两种方式#{}或者${} 其中,#{ } 解析为一个 JDBC 预编译语句(prepared statement)的参数标记符;一个 #{ } 被解析为一个参数占位符...

金琥
2017/11/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Bash各类扩展详解

Bash各类扩展详解 Bash中主要包括大括号扩展、波浪号扩展、变量扩展、子命令扩展、文件名扩展和算数扩展。这些扩展组合在一起为Bash带来了极大的易用性。掌握这些扩展的用法和功能,能够为B...

小陶小陶
今天
1
0
EventBus原理深度解析

一、问题描述 在工作中,经常会遇见使用异步的方式来发送事件,或者触发另外一个动作:经常用到的框架是MQ(分布式方式通知)。如果是同一个jvm里面通知的话,就可以使用EventBus。由于Event...

yangjianzhou
今天
5
0
OpenCV图像处理实例:libuv+cvui显示摄像头视频

#include <iostream>#include <opencv2/opencv.hpp>#define CVUI_IMPLEMENTATION#include <cvui.h>extern "C"{#include <uv.h>}using namespace std;#define WINDOW_NAM......

IOTService
今天
3
0
openJDK之JDK9的String

1.openJDK8的String 先来看下openJDK8的String的底层,如下图1.1所示: 图1.1 底层上使用的是char[],即char数组 每个char占16个bit,Character.SIZE的值是16。 2.openJDK9中的String 图2.1...

克虏伯
今天
3
0
UEFI 模式下如何安装 Ubuntu 16.04

作者:知乎用户 链接:https://www.zhihu.com/question/52092661/answer/259583475 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 针对UEFI模式下安装U...

寻知者
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部