1. 程式人生 > >SqlMap.xml中$與#的區別

SqlMap.xml中$與#的區別

在Ibatis中我們使用SqlMap進行Sql查詢時需要引用引數,在引數引用中遇到的符號#和$之間的區分為,#可以進行與編譯,進行型別匹配,而$不進行資料型別匹配

例如: select * from table where id = #id# ,其中如果欄位id為字元型,那麼#id#表示的就是'id'型別,如果id為整型,那麼#id#就是id型別。

            select * from table where id = $id$ ,如果欄位id為整型,Sql語句就不會出錯,但是如果欄位id為字元型,那麼Sql語句應該寫成 select * from table where id = '$id$'

$ 的作用實際上是字串拼接, 
select * from $tableName$ 
等效於 
StringBuffer sb = new StringBuffer(256); 
sb.append("select * from ").append(tableName); 
sb.toString(); 

#用於變數替換 
select * from table where id = #id# 
等效於 
prepareStement = stmt.createPrepareStement("select * from table where id = ?") 
prepareStement.setString(1,'abc');

說道這裡, 總結一下, 什麼時候用$,什麼時候 用 #

對於變數部分, 應當使用#, 這樣可以有效的防止sql注入, 未來,# 都是用到了prepareStement,這樣對效率也有一定的提升

$只是簡單的字元拼接而已,對於非變數部分, 那隻能使用$, 實際上, 在很多場合,$也是有很多實際意義的

例如 
select * from $tableName$ 對於不同的表執行統一的查詢 
update $tableName$ set status = #status# 每個實體一張表,改變不用實體的狀態 
特別提醒一下, $只是字串拼接, 所以要特別小心sql注入問題。

相關推薦

SqlMap.xml$#的區別

在Ibatis中我們使用SqlMap進行Sql查詢時需要引用引數,在引數引用中遇到的符號#和$之間的區分為,#可以進行與編譯,進行型別匹配,而$不進行資料型別匹配, 例如: select * from table where id = #id# ,其中如果欄位id為字元

XML XSD XSL區別聯系

str mode sta document blog 跨平臺 for net 進行 XML:XML(Extensible Markup Language)即可擴展標記語言,它與HTML一樣,都是SGML(Standard Generalized Markup Languag

淺談JS的!=、== 、!==、===的用法和區別 JSNullUndefined的區別 讀取XML文件 獲取路徑的方式 C#Cookie,Session,Application的用法區別? c#反射 抽象工廠

main 收集 data- 時間設置 oba ase pdo 簡單工廠模式 1.0 var num = 1; var str = ‘1‘; var test = 1; test == num //true 相同類型 相同值 te

web.xmlservlet ,filter ,listener ,interceptor的作用區別

一、概念:          1、servlet:servlet是一種執行伺服器端的java應用程式,具有獨立於平臺和協議的特性,並且可以動態的生成web頁面,它工作在客戶端請求與伺服器響應的中間層。最早支援 Servlet 技術的是 JavaS

Mybatis的mapper.xml裡面${} 和 #{}區別用法

Mybatis 的Mapper.xml語句中parameterType向SQL語句傳參有兩種方式:#{}和${} #{}方式能夠很大程度防止sql注入。 $方式無法防止Sql注入。 $方式一般用於傳入資料庫物件,例如傳入表名. 一般能用#的就別用$. #{}表示一個佔

XML——DTDXSD的區別

    XML我們並不陌生,在企業級應用中有很廣的用途。具體就不再說,下面介紹一下DTD,XSD的區別並以XSD為例看spring中定義與使用。一.DTD(Documnet Type Definition)    1、DTD    即文件型別定義,是一種XML約束模式語言,是

springmvc配置檔案web.xml//*的區別

<!-- 配置springmvc的 DispatcherServlet ctrl+alt+向上鍵 --><servlet><servlet-name>springDispatcherServlet</servlet-name>

Web.xml的使用區別

web.xml的配置中<context-param>配置作用: 1.啟動一個WEB專案的時候,容器(如:Tomcat)會去讀它的配置檔案web.xml.讀兩個節點: <listene

淺談mmap()和ioremap()的用法區別

12只 設備 gpa 我們 之間 mmap ioremap shared set 一、mmap()mmap()函數是用來將設備內存線性地址映射到用戶地址空間。(1)首先映射基地址,再通過偏移地址尋址;(2)unsigned char *map_cru_base=(unsig

angular js conpilelink應用區別

點擊 ive 增刪 html ret ont 綁定 function cli link方法是compile拋出來的一個方法 應用 app.directive("thumbNail",function(){ return{ restrict:"AC

cocos2d-x XML解析數據存儲

lba false 網上 unsigned failed popu new ccm cfile 一不小心就玩了一周的遊戲了。哎。玩的時候時間過得總是這麽快。。。 於是今天決定看一下之前不怎麽非常熟悉的XML;(之前做遊戲時數據的儲存用到過XML,但這塊是還有一個同事在做

抽象類和接口的聯系區別

語法 .html 註意 角度 sed 軟件 方法 基本 類結構 抽象類和接口聯系與區別 關鍵字: 抽象類與接口的區別 abstract class和interface是Java語言中對於抽象類定義進行支持的兩種機制,正是由於這兩種機制的存在,才賦予了Java強大的面向對象能

php--strlen()mb_strlen的作用區別

encoding 字符串長度 php.ini php odin int 字節數 ring enc 在PHP中,strlen與mb_strlen是求字符串長度的函數PHP內置的字符串長度函數strlen無法正確處理中文字符串,它得到的只是字符串所占的字節數。對於GB2312的

jsslice、splice用法區別

delet 內容 title pan ont 指定 至少 一個 拷貝 1.slice(start,end)(參數可選) slice() 方法返回一個從開始到結束(不包括結束)選擇的數組的一部分淺拷貝到一個新數組對象。原始數組不會被修改。 var a = [‘a‘, ‘b‘

oracle 之 偽列 rownum 和 rowid的用法區別

lena select 區別 name 繼續 class 重復 clas 重復數據 rownum的用法 select rownum,empno,ename,job from emp where rownum<6 可以得到小於6的值數據 select rownum,e

DQL、DML、DDL、DCL的概念區別

刪除對象 null font llb key ros 單行 drop primary ##SQL(Structure Query Language)語言是數據庫的核心語言。 一、DDL (Data Definition Language) 數據庫定義語言   用於創建、

php session機制cookie機制以及聯系區別

標識 級別 聯系 是什麽 生命周期 技術 路徑 多次 瀏覽器中 session與cookie是在做項目中很常用的會話技術,session與cookie也是面試中被問到頻率最高的問題,有一次我去面試,面試官就懟著我session與cookie一直問(頭都大了),下面總結了一些

對$()``區別的理解

linux本人Linux新手一枚,所以對$()和``的用法有點困惑,很多文章說這兩是一樣的但測試下來還是有不同地方個人認為$()邏輯層次比較清晰``和$()在轉義字符\的使用上有很大不一樣例如:echo $(echo \\\\\\$SHELL)結果會顯示:\\\/bin/bash但,echo `echo \\

Filter過濾器,xml配置頁面不亂碼整理

img common 解析 throws lns -- lte inf filter過濾器 1.xml配置 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3

px em rem的詳解區別

聲明 -c -s 項目 屏幕分辨率 div 推薦 項目開發 pre 在前端項目開發中,px,em,以及rem都是頁面布局常用的單位,雖然它們是長度單位,但是所含的意義不一樣。通過復習和查閱,總結了以下知識。 px像素(Pixel)     定義:相對長度單位