1. 程式人生 > >mybatis中的sql語句中#{}和${}的區別

mybatis中的sql語句中#{}和${}的區別

先直接說用法:

    一般引數傳遞用#{},在sql相當於佔位符,sql執行時引數帶引號“”

    在進行group by 或order by 的時候,使用${},sql執行的時候不帶引號

原則:能用#的地方不要用$,避免sql注入,安全

列個例子供參考:

    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.