搜尋
首頁php教程PHP开发淺談mybatis中的#和$的差別

淺談mybatis中的#和$的差別

Jan 05, 2017 pm 05:22 PM
mybatis

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.   

3. #方式能夠很大程度防止sql注入。  

4.$方式無法防止Sql注入。

5.$方式一般用於傳入資料庫對象,例如傳入表名.  

6.一般能用#的就別用$.

MyBatis排序時使用order by 動態參數時需要注意,用$而不是#

字串替換

預設情況下,使用#{}格式的語法會導致MyBatis建立預處理語句屬性並以它為背景設定安全的值(例如?)。這樣做很安全,很迅速也是首選做法,有時你只想直接在SQL語句中插入一個不改變的字串。例如,像ORDER BY,你可以這樣來使用: ORDER BY ${columnName}

這裡MyBatis不會修改或轉義字串。

重要:接受從使用者輸出的內容並提供給語句中不變的字串,這樣做是不安全的。這會導致潛在的SQL注入攻擊,因此你不應該允許使用者輸入這些字段,或通常自行轉義並檢查。

以上就是小編為大家帶來的淺談mybatis中的#和$的區別全部內容了,希望大家多多支持PHP中文網~

更多淺談mybatis中的#和$的區別相關文章請關注PHP中文網!


陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器