1. 程式人生 > >Mybatis引數獲取時$與#的區別

Mybatis引數獲取時$與#的區別

    主要對mybatis引數值=獲取方式#與$做一個簡單的總結,如果有疑問自己寫段Demo測試,效果比這個估計要好太多。

    在mybatis中#與$獲取引數區別:

    #{},相當於一個佔位符,可以防止SQL注入的問題

    ${},用於字元拼接

    在使用上能用#,就用#這種方式。

    使用#的方式:

                            如果引數是字元型別,那麼在取值的時候會給引數加上雙引號。

                            引數String a = "hello";  #{a} ---->"hello";

                            如果引數是基本型別,那麼在取值的時候會原樣獲取,引數的值可以是任意值。

                            如果引數是物件型別,那麼取值時使用OGNL表示式獲取。

   使用$的方式:

                          如果引數基本型別,${value} ,value必須是值。

                          如果引數是字元型別非字元,原樣獲取,不會為其加上雙引號。

                          如果引數是pojo(物件型別),使用OGNL(物件導航圖語言)獲取值。

天道酬勤,如果不明白,自己寫Demo測試,如果有誤,那麼就讓我坑自己一陣子。