含義
#{}:為占位符
${}:為拼接符
區別:
用法
#{}:為參數占位符?,即sql預編譯
${}為字符串替換, 即字符串拼接
執行流程
#{}:動態解析 --> 預編譯 --> 運行
${}: 動態解析 --> 編譯 -->運行
變量替換
#{}:變量替換是在DBMS(數據庫管理系統)中,會對對應的變量自動加上''
${}:變量替換實在DBMS外,不會對對應的變量加上''
sql注入
#{}可以防止sql注入
${}不可以防止sql注入
使用技巧
不論是單個參數還是多個參數,一律建議使用@param("")
能用#{}的地方盡量使用#{},減少${}
表名作為參數時,必須使用${}
order by 時,必須使用${}
使用${}時要注意何時加或不加單引號