關於mybatis的引數傳入區別${column}、#{column}
阿新 • • 發佈:2021-06-27
有時候我們使用mybatis的Mapper.xml對資料庫進行操作的時候,會出現這種情況:
先上資料庫:
①:我們想傳入兩個引數,動態更新查詢條件。
但是執行的時候發現,雖然資料庫中有Name=1的資料,但是缺查不到????
先說解決方案,文末再總結原因:
xml中的資料庫語句換成這樣:
查詢結果:
成功!!!!
②:我們想查詢自定義列的資訊。
奇了怪了????怎麼我讓你去查Name=1的Age列,你把自己Age作為查詢結果給我????
解決方案:
執行結果:
成功!!!!
總結:
查閱了Mybatis文件後發現:
在Mybatis中,${column}
會被直接替換,而#{value}
會使用?
預處理。
#{value}預處理:
我們在②問題那會出現到資料庫中查詢變成這樣的情況,因為引數名預處理會變成這樣。
所以我們看到的結果會有一個Age的查詢結果。
文件中的總結: