Mybatis的mapper文件中$和#的用法及區別詳解


https://www.2cto.com/database/201806/752139.html
用了一段時間的Mybatis了,對於$和#的用法老是很迷糊,特此記下加深記憶。 簡單來說 #{} 會在將參數加上引號,例如: SELECT
* FROM user WHERE username=#{username} ; 帶上參數后的SQL語句即: SELECT * FROM user WHERE username="XuLiTong" ; 而${}並不會在給參數加上引號,例如: SELECT * FROM user ORDER BY ${id} DESC LIMIT #{offset},#{limit}; 帶上參數后的SQL語句為: SELECT * FROM user ORDER BY id DESC LIMIT 0,10; 可見,mybatis對參數沒有進行任何的處理。通常${}用於GROUP BY,ORDER BY ,LIMIT等的后面。 但是,實際應用中,並不提倡使用 ${},因為使用 #{} 寫法,除了可以防止sql注入以外,還能在參數里含有單引號的時候自動轉義。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM