系統: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的注入,一般課可以傳入數據庫對象,比如表明或者字段名稱。使用的時候需要注意。