1 #是將傳入的值當做字元串的形式,eg:select id,name,age from student where id =#{id},當前端把id值1,傳入到後臺的時候,就相當於 select id,name,age from student where id ='1'. 2 $是將傳入的數據直 ...
1 #是將傳入的值當做字元串的形式,eg:select id,name,age from student where id =#{id},當前端把id值1,傳入到後臺的時候,就相當於 select id,name,age from student where id ='1'.
2 $是將傳入的數據直接顯示生成sql語句,eg:select id,name,age from student where id =${id},當前端把id值1,傳入到後臺的時候,就相當於 select id,name,age from student where id = 1.
3 使用#可以很大程度上防止sql註入。(語句的拼接 #{xxx},使用的是PreparedStatement,會有類型轉換,比較安全 簡單的說就是#{}是經過預編譯的,是安全的,${}是未經過預編譯的,僅僅是取變數的值,是非安全的,存在SQL註入。)
4 但是如果使用在order by 中就需要使用 $.
5 在大多數情況下還是經常使用#,但在不同情況下必須使用$.