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