1. 程式人生 > >mybatis中的兩種傳參方式#{}和¥{}原理

mybatis中的兩種傳參方式#{}和¥{}原理

之前沒注意,最近公司測試提了個bug,

問題:輸入框中輸入單引號會報錯,

原因:單引號截斷了sql

總結:#{}速度快,能防止sql注入,是佔位符方式,先預編譯,然後填充引數,字串格式,相當於填空題 使用者名稱=(___),引數只是下劃線上的內容

          ${}是直接拼接到語句上,執行語句,對於上面那道填空題 ,這種方式需要自己拼括號和引數,但是也可以拼接想執行的任何語句,也就是傳說中的sql注入

這也是jdbc儘量使用PreparedStatement而不是statement的原因,總之:能用的#就不用$