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