一般在Ibatis的動(dòng)態(tài)SQL部分,使用例如#id#,$id$這樣的格式,
1、在復(fù)雜動(dòng)態(tài)SQL語句中,類似#field#,如果field變量值為id,則Ibatis會(huì)將#field#轉(zhuǎn)換為‘id’;
     例如:<statement id ="getProduct" resultMap="get-product-result">
                   SELECT * FROM PRODUCT
                   <dynamic prepend="WHERE">
                         <isNotEmpty property="description">
                               PRD_DESCRIPTION $operator$  #description#
                         </isNotEmpty>
                   </dynamic>
                 </statement>
        上面的例子中,參數(shù)對象的operator屬性將用于替換符號(hào)$operator$,假設(shè)operator屬性等于“like”,description屬性等于“%dog%”,生成的SQL語句如下,
SELECT * FROM PRODUCT WHERE PRD_DESCRIPTION  LIKE '%dog%'
在復(fù)雜動(dòng)態(tài)SQL語句中(即語句中有<dynamic >,<isNotEmpty>等標(biāo)簽,<iterate>標(biāo)簽除外),##中的變量解析之后會(huì)被''括起來,作為一個(gè)String;
$$中的變量會(huì)直接解析;

2、在包含iterate的動(dòng)態(tài)語句中,必須使用##,但是不會(huì)作為String來處理,而是直接解析變量,例如:
     <update id="updateCDNSRVFileStatus" >
         update #tableName# set STATUS = #status#   
              <isPropertyAvailable prepend="WHERE" property="videoFileIds" >
                        FILE_ID  IN
                      <iterate property="videoFileIds" open="(" close=")" conjunction=",">
                           #videoFileIds[]#
                      </iterate>
             </isPropertyAvailable> 
      </update>


開心過好每一天。。。。。