mybatis #與$的區別
MyBatis/Ibatis中#和$的區別
1. #將傳入的資料都當成一個字串,會對自動傳入的資料加一個雙引號。如:order by #user_id#,如果傳入的值是111,那麼解析成sql時的值為order by “111”, 如果傳入的值是id,則解析成的sql為order by “id”.
2.$將傳入的資料直接顯示生成在sql中。如:order by $user_id$,如果傳入的值是111,那麼解析成sql時的值為order by user_id, 如果傳入的值是id,則解析成的sql為order by id.
3.#方式能夠很大程度防止sql注入。
4.$方式無法防止Sql注入。
5.$方式一般用於傳入資料庫物件,例如傳入表名.
6.一般能用#的就別用$.
ps:在使用mybatis中還遇到<![CDATA[]]>的用法,在該符號內的語句,將不會被當成字串來處理,而是直接當成sql語句,比如要執行一個儲存過程。
轉載自:mybatis 中#與$的區別
相關文章
- mybatis與hibernate的區別MyBatis
- MyBatis中#{}和${}的區別詳解MyBatis
- Mybatis中#{}和${}傳參的區別及#和$的區別小結MyBatis
- mybatis collection解析以及和association的區別MyBatis
- ??與?:的區別
- 淺析mybatis中${}和#{}取值區別MyBatis
- MySQL的@與@@區別MySql
- Null 與 “” 的區別Null
- &與&&, |與||區別
- 【Java面試】Mybatis中#{}和${}的區別是什麼?Java面試MyBatis
- mybatis xml裡的 resultMap、resultOrdered、resultSets、resultSetType、resultType 區別MyBatisXML
- MyBatis-06-Spring的SqlSession和原始區別MyBatisSpringSQLSession
- in與exist , not in與not exist 的區別
- MyBatis中的<where>標籤和where子句的區別MyBatis
- mybatis入門程式:刪除、更新使用者&&hibernate和mybatis的區別MyBatis
- Mybatis中updateByPrimaryKeySelective和updateByPrimaryKey的用法區別MyBatis
- CentOS 與 Ubuntu 的區別CentOSUbuntu
- artice與section的區別
- GET 與 POST 的區別
- WebSocket 與 Socket 的區別Web
- Postgresql與MySQL的區別MySql
- chown與chmod的區別
- LESS與SASS的區別
- free 與 CFRelease 的區別
- gulp與webpack的區別Web
- @Autowired 與@Resource的區別
- let與var的區別
- post與get的區別
- HashSet與HashMap的區別HashMap
- maven與ant的區別Maven
- __new()__ 與 __init()__的區別
- TCP與UDP的區別TCPUDP
- Mysql與mongodb的區別MySqlMongoDB
- typedef與define的區別
- Eureka與Zookeeper的區別
- buffer與cache的區別
- async與defer的區別
- synchronized與Lock的區別synchronized