mybatis中# 和$ 符號的區別

#{} 和${}都是在sql語句當中使用html

區別在於sql

1.sql解析語句的時候會在#{}傳入的數據加引號,而不會在${}加引號(顯示的是原來的sql)數據庫

即:spa

#{}    select  * from table1 where id=#{id}  -->select * from table1 where id='2' .net

${}    select * from table1 where id=${id} -->select * from table1 where id=2htm

2.也正是如此, #{}可以很大程度防止sql注入,而${}是元語句輸出對象

3.$方式通常用於傳入數據庫對象,例如傳入表名.通常能用#的就別用$blog

MyBatis排序時使用order by 動態參數時須要注意,用$而不是#排序

如:get

select * from ${tableName} order by ${id} 這裏須要傳入表名和按照哪一個列進行排序

加入傳入table一、id 則語句爲:select * from table1 order by id

若是是使用#{} 則變成了select * from 'table1' order by 'id' 咱們知道這樣就不對了。

參考借鑑:

http://blog.csdn.net/kobi521/article/details/16941403

http://www.cnblogs.com/teach/p/5685545.html

相關文章
相關標籤/搜索