1. 程式人生 > >面試問題mybatis #和$的區別

面試問題mybatis #和$的區別

這個問題面試時被問到好幾次,也是經常被問的一個問題

MyBatis中#和$的區別

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.一般能用#的就別用$.