記錄下mybatis中 和 傳參的區別

2021-07-22 22:36:25 字數 461 閱讀 9597

最近在用mybatis,之前用過ibatis,總體來說差不多,不過還是遇到了不少問題,再次記錄下,

比如說用#{},和 ${}傳參的區別,

使用#傳入引數是,sql語句解析是會加上"",比如  select * from table where name = # ,傳入的name為小李,那麼最後列印出來的就是

select * from table where name = 『小李』,就是會當成字串來解析,這樣相比於$的好處是比較明顯對的吧,#{}傳參能防止sql注入,如果你傳入的引數為 單引號',那麼如果使用${},這種方式 那麼是會報錯的,

另外一種場景是,如果你要做動態的排序,比如  order by   column,這個時候務必要用${},因為如果你使用了#{},那麼列印出來的將會是

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

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

mybatis中 和 傳參的區別

會按照型別替換,如果a 是string,那麼最後的結果為 ssss a是 文字替換 如果a 是str ing,那麼最後 的結果也 為sss s,主要用在 group by,order by 後面 具體來講一下吧 使用 傳入引數是,sql語句解析是會加上 比如 select from table wh...

mybatis要點記錄 傳參方式

mybatis plus官網 和 的區別 表示乙個佔位符號 傳入值時,sql解析時,引數是帶引號的,而的區別最大在於 傳入值時,sql解析時,引數是帶引號的,而 穿入值,sql解析時,引數是不帶引號的。能夠防止sql注入,而不能,不能,不能 一般用於傳入不需要轉義的引數 一般推薦使用 進行傳參 能用...

mybatis傳參總結

這種型別的文章比較多,再次只是自己的乙個總結 最常見的傳參方式應該是在xml中的屬性 parametertype 如果是基本型別,那麼在xml中使用 的方式就可以把引數值取出來了 如果是實體型別,比如說是自己封裝的pojo,那麼還是用上面的方式就可以去出來 現在當前的要求是需要傳入兩個引數,乙個是s...