例:name的值為張三
select * from user where name = #;
select * from user where name = '$';
解析結果一樣:
select * from user where name = '張三';
預編譯中的處理是不一樣:
select * from user where name = ?; -- #{}預處理
select * from user where name = '張三'; -- ${}預處理
因為 ${} 會導致 sql 注入的問題,開發中優先使用#{}。
例:表名稱為user;--
select * from $ where name = '$';
則動態解析之後 sql 如下:
select * from user; -- where name = 張三; -- 後面的會被注釋掉,語句就變成了查詢所有
但是使用模糊查詢時,常用 ${}進行拼接
例:查詢名字裡帶有小明(value)的資訊
select * from user where username like '%$%';
解析結果:
select * from user where username like '%小明%' ;
使用${}是字串的拼接,記得加'$'
例:
select * from user where username = '$';
mybatis 中 與 的區別
mybatis ibatis中 和 的區別 1.將傳入的資料都當成乙個字串,會對自動傳入的資料加乙個雙引號。如 order by user id 如果傳入的值是111,那麼解析成sql時的值為order by 111 如果傳入的值是id,則解析成的sql為order by id 2.將傳入的資料直接...
mybatis 中 與 的區別
mybatis將 解釋為jdbc prepared statement 的乙個 引數標記 而將 解釋為 字串替換 1.將傳入的資料都當成乙個字串,會對自動傳入的資料加乙個雙引號。如 order by user id 如果傳入的值是111,那麼解析成sql時的值為order by 111 如果傳入的值...
mybatis 中 與 的區別
mybatis ibatis中 和 的區別 1.將傳入的資料都當成乙個字串,會對自動傳入的資料加乙個雙引號。如 order by user id 如果傳入的值是111,那麼解析成sql時的值為order by 111 如果傳入的值是id,則解析成的sql為order by id 2.將傳入的資料直接...