mybatis #和$區(qū)別是:
1、“#”將傳入的數(shù)據(jù)當成一個字符串,會對自動傳入的數(shù)據(jù)加一個雙引號。例如“order by #id#”,如果傳入的值是111,那么解析成sql時的值變?yōu)椤皁rder by "111"”,如果傳入的值是id,在解析成sql為“order by "id"”,其實原sql語句通常寫成 “order by #{id} 與order by #id#”的效果一樣。
2、“$”將傳入的數(shù)據(jù)直接顯示在sql語句中。例如“order by ${id}”,如果傳入的值是9則解析成sql語句為“order by 9”。
3、“#”方式能夠很大程度上防止sql注入,而“$”無法防止sql的注入,“$”一般用于傳入數(shù)據(jù)庫對象,例如傳入表名一般能用#就別用“$”,mybatis排序時使用order by動態(tài)參數(shù)時需要注意,使用“$”而不是“#”。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com