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

2、在包含iterate的動態語句中,必須使用##,但是不會作為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>


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