#{},和 ${}傳參的區別如下:
使用#傳入參數是,sql語句解析是會加上"",當成字符串來解析,這樣相比於$的好處是比較明顯對的吧,#{}傳參能防止sql注入,如果你傳入的參數爲 單引號',那麼如果使用${},這種方式 那麼是會報錯的
另外一種場景是,如果要做動態的排序,比如 order by column,這個時候務必要用${}
select * from table order by 'name' ,這樣是沒用
目前來看,能用#就不要用$。
但是${}在什麼情況下使用呢?
有時候可能需要直接插入一個不做任何修改的字符串到SQL語句中。這時候應該使用${}語法。
比如,動態SQL中的字段名,如:ORDER BY ${columnName}