mybatis$和#的区别
生活随笔
收集整理的這篇文章主要介紹了
mybatis$和#的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
select * from everstar.Questions where ProductType = 'productType'
select * from everstar.Questions where ProductType = '${productType}'
select * from everstar.Questions where ProductType = #{productType}
最直觀的區別就是${}取出來的值直接就是傳過來的數據,對于字符串而言需要加''單引號
用過jdbcTemplate的人應該知道,${}就類似于execute()而#{}類似于update().
#{}跟jdbc的prepareStatement是一樣的道理。
跟hibernate的setParameter是一個吊樣,都可以防止sql注入。
而#{}取值會默認加'',會根據類型來判斷的。
?${ } 變量的替換階段是在動態 SQL 解析階段,而 #{ }變量的替換是在 DBMS 中。
- #方式能夠很大程度防止sql注入。
- $方式無法防止Sql注入。
- $方式一般用于傳入數據庫對象,例如傳入表名.
mybatis會用到的所有標簽
圖片總結很到位,具體用法 (ゝω?) テヘペロ mybatis全部標簽
轉載于:https://www.cnblogs.com/chywx/p/9448467.html
總結
以上是生活随笔為你收集整理的mybatis$和#的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 人工智能究竟可以创造什么新的就业机会?
- 下一篇: Flutter入门三部曲(3) - 数据