記錄#{}和${}在mybatis中的坑

前兩天寫sql語句的時候出現了一個坑,花了我好久的時間。事情是這樣的,我在sql語句中寫#{}去取java代碼傳過來的值,查不出來數據,一條都沒有。但是我在xml文件中把值固定死是可以查的到的。

那麼問題來了?是我的值沒傳過來嗎?並不是!因爲控制檯看得到 我的值已經傳過來了。那這…讓人摸不着頭腦了哎!不符合邏輯呀~然後我又嘗試着用${}去取值,本來只是寫着玩,沒想到居然查出來了!!!這…這誰頂得住!本來都準備背書包溜了溜了的。硬忍住了。
然後我去看了數據庫裏面的數據,發現都是char類型,而且長度是97。選中具體數據的話會有空格。

那爲什麼#{}查不出數據而美元符號卻能查到數據,我的疑問又轉到了這裏?問了問別人。原來是美元符號會自動在後面拼空格,而#{}不會。但是${}是不讓用的,sql注入的問題就不想解釋了!那一定要用#{}該怎麼辦呢???
在這裏插入圖片描述
數據出現的問題可能以後還會有很多,但是這種問題我記下了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章