Mybatis中#{}與${}的使用


含義

#{}:為占位符

${}:為拼接符

區別:

  用法

  #{}:為參數占位符?,即sql預編譯

        ${}為字符串替換, 即字符串拼接

  執行流程

  #{}:動態解析 --> 預編譯 --> 運行

   ${}: 動態解析 --> 編譯 -->運行

  變量替換

  #{}:變量替換是在DBMS(數據庫管理系統)中,會對對應的變量自動加上''

   ${}:變量替換實在DBMS外,不會對對應的變量加上''

  sql注入

  #{}可以防止sql注入

  ${}不可以防止sql注入

使用技巧

  不論是單個參數還是多個參數,一律建議使用@param("")

   能用#{}的地方盡量使用#{},減少${}

   表名作為參數時,必須使用${}

         order by 時,必須使用${}

         使用${}時要注意何時加或不加單引號


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM