#將傳入的資料都當成乙個字串,會對自動傳入的資料加乙個雙引號。如:order by #user_id#,如果傳入的值是111,那麼解析成sql時的值為order by 「111」, 如果傳入的值是id,則解析成的sql為order by 「id」.
$將傳入的資料直接顯示生成在sql中。如:order by use
ri
duser_id
useri
d,如果傳入的值是111,那麼解析成sql時的值為order by user_id, 如果傳入的值是id,則解析成的sql為order by id.
#方式能夠很大程度防止sql注入。
$方式無法防止sql注入。
#{}: 解析為乙個 jdbc 預編譯語句(prepared statement)的引數標記符,乙個 # 被解析為乙個引數佔位符 。
${}: 僅僅為乙個純碎的 string 替換,在動態 sql 解析階段將會進行變數替換。
sql語句中#{}表示乙個佔位符。
mybatis中 $與#
在mybatis中的$與#都是在sql中動態的傳入引數。
eg:select id,name,age from student where name=# 這個name是動態的,可變的。
(當你傳入什麼樣的值,就會根據你傳入的值執行sql語句。)
mysql中null與 的區別
mysql中空字元和空值的區別,一直都知道mysql 中空字串 和空值 null 之間有區別,但是沒好好研究過。直到專案上,這兩個概念被我搞混了之後才想起來研究一下。根據網上的說法,空字串 是不占用空間,而空值 null 是占用空間。這裡我不太明白,因為我的理解是,字串都會有乙個結束符,這個結束符不...
mysql中的in與exists區別
建立兩張表並為其新增一些資料 一張會員表,一張會員下單表。會員表資料 iduser email 1abei abei nai8.me2wh abei maige123.com 3liuhuan 267765 qq.com 訂單表id user id create time 1 11489579802...
Mysql中in, exists與or的區別
假設表a中,字段 name的值可能為 x y z 要找出a表中name為y z 的記錄,有兩種方式 or與in的比較 in和exists方式 假設表b中,字段 name的值可能為 w y z 現要找出a表中name與b表中name相同的記錄 1 select from a where exists ...