mybatis中#和$区别
在Mybtis中的Mapper映射文件中,sql語句傳參有兩種方式#{}和${}
一般來說,我們通常使用的是#{},這里采用的是預編譯機制,防止SQL注入,將#{}中的參數(shù)轉(zhuǎn)義成字符串,例如:
執(zhí)行SQL:Select * from users where username = #{username}
參數(shù):username=lxd
解析后執(zhí)行的SQL:Select * from users where username = ?
執(zhí)行SQL:Select * from users where name = ${username}
參數(shù):username傳入值為:lxd
解析后執(zhí)行的SQL:Select * from users where username =lxd
#{} 和 ${} 在預編譯中的處理是不一樣的。#{} 在預處理時,會把參數(shù)部分用一個占位符 ? 代替,變成如下的 sql 語句:
select * from user where username = ?;
而 ${} 則只是簡單的字符串替換,在動態(tài)解析階段,該 sql 語句會被解析成
select * from user where username = 'lxd';
表名用參數(shù)傳遞進來的時候,只能使用 ${}
轉(zhuǎn)載于:https://www.cnblogs.com/l-x-x-y-d-j/p/10224838.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結
以上是生活随笔為你收集整理的mybatis中#和$区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 农行信用卡在线申请进度查询方法:方便、快
- 下一篇: Codeforces 914D - Ba