Mybatis引數獲取時$與#的區別
阿新 • • 發佈:2019-01-29
主要對mybatis引數值=獲取方式#與$做一個簡單的總結,如果有疑問自己寫段Demo測試,效果比這個估計要好太多。
在mybatis中#與$獲取引數區別:
#{},相當於一個佔位符,可以防止SQL注入的問題
${},用於字元拼接
在使用上能用#,就用#這種方式。
使用#的方式:
如果引數是字元型別,那麼在取值的時候會給引數加上雙引號。
引數String a = "hello"; #{a} ---->"hello";
如果引數是基本型別,那麼在取值的時候會原樣獲取,引數的值可以是任意值。
如果引數是物件型別,那麼取值時使用OGNL表示式獲取。
使用$的方式:
如果引數基本型別,${value} ,value必須是值。
如果引數是字元型別非字元,原樣獲取,不會為其加上雙引號。
如果引數是pojo(物件型別),使用OGNL(物件導航圖語言)獲取值。
天道酬勤,如果不明白,自己寫Demo測試,如果有誤,那麼就讓我坑自己一陣子。