一. 主要區別
#a# //解析sqlmap配置檔案時自動加單引號,即'a'
$a$ //解析sqlmap配置檔案時不加單引號,即a 如果傳進來的條件需要order by的話,那一定用第二種
#是把傳入的資料當作字串,如#field#傳入的是id,則sql語句生成是這樣,order by "id",這當然會報錯..
$傳入的資料直接生成在sql裡,如#field#傳入的是id,則sql語句生成是這樣,order by id, 這就對了.
二. 解析
在ibatis中我們使用sqlmap進行sql查詢時需要引用引數,在引數引用中遇到的符號#和$之間的區分為,#可以進行與編譯,進行型別匹配,而$不進行資料型別匹配,例如:
select * from table where id = #id# ,其中如果欄位id為字元型,那麼#id#表示的就是'id'型別,如果id為整型,那麼#id#就是id型別。
select * from table where id = $id$ ,如果欄位id為整型,sql語句就不會出錯,但是如果欄位id為字元型,那麼sql語句應該寫成 select * from table where id = '$id$'
三.用途的區別
1.#方式能夠很大程度防止sql注入.
2.$方式無法防止sql注入.
3.$方式一般用於傳入資料庫物件.例如傳入表名.
4.一般能用#的就別用$.
Java中 和 的區別
第十一,short s1 1 s1 s1 1 有什麼錯?short s1 1 s1 1 有什麼錯?引出一下討論。賦值運算子,在編譯器將右邊的表示式結果計算出來後,和左邊的變數型別比較精度,如果左邊的變數精度低於右邊的結果的精度,編譯器會顯式的報錯,告訴程式設計師去強制轉型。所以s1 s1 1出錯 最...
Linux shell中 和 的區別
shell中和的區別 結構比結構更加通用。這是乙個擴充套件的test命令,支援萬用字元。在 和 之間所有的字元都不會發生檔名擴充套件或者單詞分割,但是會發生引數擴充套件和命令替換。使用 條件判斷結構,而不是 能夠防止指令碼中的許多邏輯錯誤,比如,和 這些操作符能夠正常存在於這個條件判斷中,但是如果出...
ibatis中 和 的區別
在ibatis中我們使用sqlmap進行sql查詢時需要引用引數,在引數引用中遇到的符號 和 之間的區分為,可以進行與編譯,進行型別匹配,而 不進行資料型別匹配,例如 select from table where id id 其中如果欄位id為字元型,那麼 id 表示的就是 id 型別,如果id為...