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' ?,這樣是沒用,
目前來看,能用#就不要用$,
轉載于:https://www.cnblogs.com/zuge/p/5810301.html
總結
以上是生活随笔為你收集整理的mybatis中#{}和${}传参的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用jetty起maven工程debug报
- 下一篇: 设计模式之笔记--简单工厂模式(Simp