mybatis中 和 的區別

2021-06-22 00:24:21 字數 374 閱讀 7429

昨天乙個專案中在寫ibatis中的sql語句時,order by #field#, 執行時總是報錯,後來上網查了查,才知道這裡不該用#,而應該用$,隨即查了下#與$的區別. 

總結如下: 

1.#是把傳入的資料當作字串,如#field#傳入的是id,則sql語句生成是這樣,order by "id",這當然會報錯.. 

2.$傳入的資料直接生成在sql裡,如#field#傳入的是id,則sql語句生成是這樣,order by id, 這就對了. 

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

4.$方式無法方式sql注入. 

5.$方式一般用於傳入資料庫物件.例如傳入表名. 

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

就這麼多了

myBatis中 和 區別

1.將傳入的資料都當成乙個字串,會對自動傳入的資料加乙個雙引號。如 order by user id 如果傳入的值是111,那麼解析成sql時的值為order by 111 如果傳入的值是id,則解析成的sql為order by id 2.將傳入的資料直接顯示生成在sql中。如 order by u...

mybatis 中 和 區別

在使用mybatis 框架時 在xml的配置檔案中,通常是使用 來獲取數值的 如 select from t user inf where id 這時 如果你傳入的值為zhangsan 則會編譯成為 select from t user inf where id zhangsan mybatis 會...

Mybatis 中 和 區別

號與 區別 號表示引數,代表乙個字串。如 select a,b,c from table1 where id value 傳入引數後如 value 1 則可生成 select a,b,c from table1 where id 1 select a,b,c from table1 where ci...