1、#可以進行預編譯,進行型別匹配,#變數名# 會轉化為 jdbc 的 型別
$不進行資料型別匹配,$變數名$就直接把 $name$替換為 name的內容
例如:
select * from tablename where id = #id# ,假設id的值為12,其中如果資料庫欄位id為字元型,那麼#id#表示的就是'12',如果id為整型,那麼#id#就是 12
會轉化為jdbc的 select * from tablename where id=?,把?引數設定為id的值
select * from tablename where id = $id$ ,如果欄位id為整型,sql語句就不會出錯,但是如果欄位id為字元型,
那麼sql語句應該寫成 select * from table where id = '$id$'
3、#方式能夠很大程度防止sql注入.
4、$方式無法方式sql注入.
5、$方式一般用於傳入資料庫物件.例如傳入表名.
6、所以ibatis用#比$好,一般能用#的就別用$.
另外,使用##可以指定引數對應資料庫的型別
如: select * from tablename where id = #id:number#
在做in,like 操作時候要特別注意
總結以下:
$號使用在具體pojo類也就是非基本型別的取值,而#號使用在具體有基本型別的取值
and $
and $ #
and $ # and #
and $
# 這種情況用$
string userids = "1,2,3,4";
select * from user where userid in ($userids$)
引用自:
ibatis中井號跟美元符號區別( )
原文出處 1 可以進行預編譯,進行型別匹配,變數名 會轉化為 jdbc 的 型別 不進行資料型別匹配,變數名 就直接把 name 替換為 name的內容 例如 select from tablename where id id 假設id的值為12,其中如果資料庫欄位id為字元型,那麼 id 表示的就...
ibatis中井號跟美元符號區別( )
1 可以進行預編譯,進行型別匹配,變數名 會轉化為 jdbc 的 型別 不進行資料型別匹配,變數名 就直接把 name 替換為 name的內容 例如 select from tablename where id id 假設id的值為12,其中如果資料庫欄位id為字元型,那麼 id 表示的就是 12 ...
URL中的hash(井號)
1.的含義 代表網頁中的乙個位置,其右邊的字元,就是該位置的識別符號。比如 就是代表index.html中的print位置。瀏覽器會自動把print位置滾動到頁面可視區域內。設定方法 step1 設定乙個錨點定位到print位置 step2 在頁面需要定位的內容加上id print 例如 測試 st...