#{}和${}的區別


原sql語句:

delete from
ups_role_permission_dataparams
where role_id = #{roleId,jdbcType=INTEGER}

在這里用到了#{},使用#時:

1、用來傳入參數,sql在解析的時候會加上" ",當成字符串來解析 ,如這里 role_id = "roleid";

2、#{}能夠很大程度上防止sql注入;

延伸:

1、用${}傳入數據直接顯示在生成的sql中,如上面的語句,用role_id = ${roleId,jdbcType=INTEGER},那么sql在解析的時候值為role_id = roleid,執行時會報錯;

2、${}方式無法防止sql注入;

3、$一般用入傳入數據庫對象,比如數據庫表名;

4、能用#{}時盡量用#{};

注意:Mybaties排序時使用order by 動態參數時需要注意,使用${}而不用#{}。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM