Mybatis Sql語句#{},和 ${}傳參的區別 原

#{},和 ${}傳參的區別如下:

使用#傳入參數是,sql語句解析是會加上"",當成字符串來解析,這樣相比於$的好處是比較明顯對的吧,#{}傳參能防止sql注入,如果你傳入的參數爲 單引號',那麼如果使用${},這種方式 那麼是會報錯的

另外一種場景是,如果要做動態的排序,比如 order by column,這個時候務必要用${}

select * from table order by 'name' ,這樣是沒用

目前來看,能用#就不要用$。

但是${}在什麼情況下使用呢?

有時候可能需要直接插入一個不做任何修改的字符串到SQL語句中。這時候應該使用${}語法。

比如,動態SQL中的字段名,如:ORDER BY ${columnName}

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