Mybatis【#{}和${}的区别】
生活随笔
收集整理的這篇文章主要介紹了
Mybatis【#{}和${}的区别】
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
#{}和${}的區(qū)別
#{}是占位符,預(yù)編譯處理;${}是拼接符,字符串替換,沒有預(yù)編譯處理。
Mybatis在處理#{}時(shí),#{}傳入?yún)?shù)是以字符串傳入,會(huì)將SQL中的#{}替換為?號(hào),調(diào)用PreparedStatement的set方法來賦值。
Mybatis在處理時(shí) , 是 原 值 傳 入 , 就 是 把 {}時(shí),是原值傳入,就是把時(shí),是原值傳入,就是把{}替換成變量的值,相當(dāng)于JDBC中的Statement編譯
變量替換后,#{} 對(duì)應(yīng)的變量自動(dòng)加上單引號(hào) ‘’;變量替換后,${} 對(duì)應(yīng)的變量不會(huì)加上單引號(hào) ‘’
#{} 可以有效的防止SQL注入,提高系統(tǒng)安全性;${} 不能防止SQL 注入
#{} 的變量替換是在DBMS 中;${} 的變量替換是在 DBMS 外
總結(jié)
以上是生活随笔為你收集整理的Mybatis【#{}和${}的区别】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MyBatis的框架架构设计是怎么样的?
- 下一篇: 开源创新、软件定义网络和网络功能虚拟化特