你的位置:首页 > Java教程

[Java教程]SpringMVC + Spring + MyBatis 学习笔记:遭遇order by 排序问题


系统:WIN8.1

数据库:Oracle 11GR2

开发工具:MyEclipse 8.6

框架:Spring3.2.9、SpringMVC3.2.9、MyBatis3.2.8


 

用MyBatis写排序的时候字段很多,于是想当然的就把需要排序的字段用String类型扔到了配置文件里面。但是却没有起到效果。后来查阅资料,发现应该使用$符号。

 

  • #符号将传入的数据都当做一个字符串,会对数据增加一个引号,如 order by #userid# , userid对应的值是10001,解析后就是 order by '10001' 。
  • $符号将传入的数据直接显示在sql中。如 order by $userid$ , userid对应的值是10001,解析后结果为 order by userid。

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