我們在使用ibatis時會經常用到#和$這兩個符號。
一 . #與$區別說通俗一點就是
$中間的變數就是直接替換成值的
#會根據變數的型別來進行替換
比如articletitle的型別是string, 值是"標題"的時候
$articletitle$ = 標題
#articletitle# = '標題'
二. $ 的作用實際上是字串拼接,
select * from $tablename$
等效於stringbuffer sb = new stringbuffer(256);
sb.tostring();
#用於變數替換
select * from table where id = #id#
等效於preparestement =stmt.createpreparestement("select * from table where id = ?")
preparestement.setstring(1,'abc');
三. 那什麼時候用$,什麼時候 用 #
(1)對於變數部分, 應當使用#, 這樣可以有效的防止sql注入,具體執行時,# 都是用到了preparestement,這樣對效率也有一定的提公升
#方式一般用於傳入插入/更新的值或查詢/刪除的where條件
(2) $只是簡單的字元拼接而已,對於非變數部分, 那只能使用$, 實際上, 在很多場合,$也是有很多實際意義的
$方式一般用於傳入資料庫物件.例如傳入表名.
例如:select * from $tablename$ 對於不同的表執行統一的查詢
update $tablename$ set name = #name# 每個實體一張表,改變不用實體的狀態
特別說明, $只是字串拼接,所以要特別小心sql注入問題。
(3)能同事用#和$的時候最好用#
ibatis 中 與 的區別
在ibatis中我們使用sqlmap進行sql查詢時需要引用引數,在引數引用中遇到的符號 和 之間的區分為,可以進行與編譯,進行型別匹配,而 不進行資料型別匹配,例如 select from table where id id 其中如果欄位id為字元型,那麼 id 表示的就是 id 型別,如果id為...
IBATIS中 與 的區別
我們在使用ibatis時會經常用到 和 這兩個符號。一 與 區別說通俗一點就是 中間的變數就是直接替換成值的 會根據變數的型別來進行替換 比如articletitle的型別是string,值是 標題 的時候 articletitle 標題 articletitle 標題 二.的作用實際上是字串拼接,...
IBATIS中 與 的區別
一 與 區別說通俗一點就是 中間的變數就是直接替換成值的 會根據變數的型別來進行替換 比如articletitle的型別是string,值是 標題 的時候 articletitle 標題 articletitle 標題 二.的作用實際上是字串拼接,select from tablename 等效於s...