Mybatis之mapper文件方法標籤中# $用法的區別

 

簡單來說 #{} 會在將參數加上引號,例如:

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注入以外,還能在參數裏含有單引號的時候自動轉義。

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