天天看點

mybatis mapper 傳值 # 和 $ 差別

1. #将傳入的資料都當成一個字元串,會對自動傳入的資料加一個雙引号。如:order by #user_id#,如果傳入的值是111,那麼解析成sql時的值為order by "111", 如果傳入的值是id,則解析成的sql為order by "id".

 

2. $将傳入的資料直接顯示生成在sql中。如:order by $user_id$,如果傳入的值是111,那麼解析成sql時的值為order by user_id,  如果傳入的值是id,則解析成的sql為order by id.

  

3. #方式能夠很大程度防止sql注入。

  

4.$方式無法防止Sql注入。

5.$方式一般用于傳入資料庫對象,例如傳入表名.

  

6.一般能用#的就别用$.

繼續閱讀