#{}和${}的區別


兩者都可以在mybatis中用在輸入映射

{}是預編譯處理,

${}是字符串替換。

mybatis在處理#{}時,會將sql中的#{}替換為?號,調用PreparedStatement的set方法來賦值;
mybatis在處理 $ { } 時,就是把 ${ } 替換成變量的值,完成的是簡單的字符串拼接。

補充:在mybatis中使用#{}可以防止sql注入,提高系統安全性。

sql注入是什么:
例如:用戶輸入的賬號密碼在代碼中是以字符串拼接的方式生成查詢語句的,這樣用戶輸入的內容很容易改變我們的原查詢代碼,這就相當一一個數據庫注入問題。
我們驗證密碼和賬號的時候,如果用戶在輸入密碼的時候 輸入 or 1=1;那不管他輸入的密碼是什么都可以通過。


免責聲明!

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



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