mybatis #與$的區別

Coding-lover發表於2016-04-26

MyBatis/Ibatis中#和$的區別
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.一般能用#的就別用$.

ps:在使用mybatis中還遇到<![CDATA[]]>的用法,在該符號內的語句,將不會被當成字串來處理,而是直接當成sql語句,比如要執行一個儲存過程。

轉載自:mybatis 中#與$的區別

相關文章