1、#{}是預編譯處理是一個占位符,mybatis遇見#{}時,會将sql中的#{}替換為?号。
select * from table where id=#{id}
當id我們傳值為101時,
mybatise将預編譯為
select * from table where id=?
最終執行的sql為
select * from table where id='101'
2、$ {}是字元串替換,,調用PreparedStatement的set方法來指派;mybatis在處理時 ,就 是 把 {}替換成變量的值。使用#{}可以有效的防止SQL注入,提高系統安全性。
select * from table where id=${id}
當id傳值為101時
mybatise将sql轉換為
select * from table where id=101
3、#{}将傳入的資料都當成一個字元串,會對自動傳入的資料加一個雙引号。
4、${}将傳入的資料直接顯示生成在sql中。
待續。。。
本文來自部落格園,作者:陳浩文,轉載請注明原文連結:https://www.cnblogs.com/chenhaowen/p/16627854.html