2018-02-01

mybatis中的#和$的區(qū)別

1. #將傳入的數(shù)據(jù)都當(dāng)成一個(gè)字符串,會(huì)對(duì)自動(dòng)傳入的數(shù)據(jù)加一個(gè)雙引號(hào)。如:order by #user_id#,如果傳入的值是111,那么解析成sql時(shí)的值為order by "111", 如果傳入的值是id,則解析成的sql為order by "id".

2. $將傳入的數(shù)據(jù)直接顯示生成在sql中。如:order by $user_id$,如果傳入的值是111,那么解析成sql時(shí)的值為order by user_id, 如果傳入的值是id,則解析成的sql為order by id.

3. #方式能夠很大程度防止sql注入。

4.$方式無法防止Sql注入。

5.$方式一般用于傳入數(shù)據(jù)庫對(duì)象,例如傳入表名.

6.一般能用#的就別用$.

MyBatis排序時(shí)使用order by 動(dòng)態(tài)參數(shù)時(shí)需要注意,用$而不是#。

#{}占位符:占位

如果傳入的是基本類型,那么#{}中的變量名稱可以隨意寫

如果傳入的參數(shù)是pojo類型,那么#{}中的變量名稱必須是pojo中的屬性.屬性.屬性...

${}拼接符:字符串原樣拼接

如果傳入的是基本類型,那么${}中的變量名必須是value

如果傳入的參數(shù)是pojo類型,那么${}中的變量名稱必須是pojo中的屬性.屬性.屬性...

注意:使用拼接符有可能造成sql注入,在頁面輸入的時(shí)候可以加入校驗(yàn),不可輸入sql關(guān)鍵字,不可輸入空格

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,656評(píng)論 19 139
  • 1. 簡(jiǎn)介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存儲(chǔ)過程以及高級(jí)映射的優(yōu)秀的...
    笨鳥慢飛閱讀 6,249評(píng)論 0 4
  • 放下文筆已經(jīng)好久好久了,我不知道我到底怎么回事。我想我失去了很多很多的東西讓我以至于覺得自己已經(jīng)不會(huì)寫東西寫句子寫...
    wind故事閱讀 147評(píng)論 0 0
  • 我是一個(gè)十分吝嗇的人。 就拿今晚上去洗腳為例,給我?服務(wù)的美女,身材婀娜到噴血,長(zhǎng)發(fā)飄飄一身黑絲,十分惹火。 我明...
    不用多說什么閱讀 413評(píng)論 0 0
  • 什么?都是付費(fèi)啊!要50?好貴!…… 故事要從一堂公開課說起。 思來想去還是打算講講作文課。定這個(gè)課型,是一瞬間的...
    時(shí)慧慧愛物閱讀 363評(píng)論 0 0

友情鏈接更多精彩內(nèi)容