1. 程式人生 > >Mybatis之mapper檔案方法標籤中# $用法的區別

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