資料庫中 與 區別

2021-08-03 08:24:17 字數 736 閱讀 4686

mybatis(4)

原sql語句:

[sql]view plain

copy

deletefromups_role_permission_dataparams  

whererole_id = #

在這裡用到了#{},使用#時:

1、用來傳入引數,sql在解析的時候會加上" ",當成字串來解析 ,如這裡 role_id ="roleid";

2、#{}能夠很大程度上防止sql注入;

延伸:

1、用${}傳入資料直接顯示在生成的sql中,如上面的語句,用role_id = $,那麼sql在解析的時候值為role_id =roleid,執行時會報錯;

2、${}方式無法防止sql注入,如驗證使用者名稱時通過t.name = $就可以實現sql注入的目的;

3、$一般用入傳入資料庫物件,比如資料庫表名;

4、能用#{}時盡量用#{};

注意:

mybaties排序時使用order by 動態引數時需要注意,使用${}而不用#{};

資料庫中 與null的區別

null不是物件,是物件 從 你就可以知道這是乙個字串型別的資料,是乙個長度為零的字串。從null,你只能知道這裡沒有賦過值,是空的,他不屬於任何資料型別。我們在資料庫實際使用中,一般把字串型變數預設為 數值型變數預設為0,這樣才能保正在進行邏輯運算時不產生型別不匹配的錯誤。sql server中函...

資料庫與資料庫例項的區別

資料庫與資料庫例項的區別 一 資料庫 資料庫 database 是乙個資料集合.無論資料庫是採用關係結構還是物件導向結構,oracle資料庫都將 其資料存放在資料檔案中.在其內部,資料庫結構資料對檔案的邏輯 對映,使不同的資料分開儲存,這些邏輯劃分稱為表空間.表空間和檔案介紹 1 表空間 表空間 t...

資料庫中char與varchar的區別

例如定義 char 10 與 varchar 10 當儲存 test 時,char長度依舊為10,後六位為空格,而varchar長度變為4,因此取資料char要用trim 函式去除空格。因為char長度固定,方便程式的儲存與查詢,但是char為此付出的是空間的代價,因為其長度固定,所以難免會有多餘的...