mybatis中的#{value}和${value}的区别
生活随笔
收集整理的這篇文章主要介紹了
mybatis中的#{value}和${value}的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2019獨角獸企業重金招聘Python工程師標準>>>
1. #{value}將傳入的數據都當成一個字符串,會對自動傳入的數據加一個雙引號。
2. ${value}將傳入的數據直接顯示生成在sql中。
3. #{value}方式能夠很大程度防止sql注入。
4.${value}方式無法防止Sql注入。
5.${value}方式一般用于傳入數據庫對象,例如傳入表名.
6.一般能用#{value}的就別用${value}.
MyBatis排序時使用order by 動態參數時需要注意,用${value}而不是#{value}
字符串替換
默認情況下,使用#{value}格式的語法會導致MyBatis創建預處理語句屬性并以它為背景設置安全的值。這樣做很安全,很迅速也是首選做法,有時你只是想直接在SQL語句中插入一個不改變的字符串。
重要:接受從用戶輸出的內容并提供給語句中不變的字符串,這樣做是不安全的。這會導致潛在的SQL注入攻擊,因此你不應該允許用戶輸入這些字段,或者通常自行轉義并檢查。
轉載于:https://my.oschina.net/u/2845848/blog/742398
總結
以上是生活随笔為你收集整理的mybatis中的#{value}和${value}的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微型计算机的应用形式,微型计算机基本原理
- 下一篇: 698. Partition to K