1. 程式人生 > >記錄下mybatis中#{}和${}傳參的區別

記錄下mybatis中#{}和${}傳參的區別

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

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

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

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

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

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

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