最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Ibatis配置xml文件CDATA使用方法詳解

 更新時間:2020年12月03日 14:50:46   作者:手撕高達的村長  
這篇文章主要介紹了Ibatis配置xml文件CDATA使用方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

ibatis作為一種半自動化的OR Mapping工具,其靈活性日益體現(xiàn)出來,越來越多的人都傾向于在項目中使用。由于Sql中經(jīng)常有與xml規(guī)范相沖突的字符對xml映射文件的合法性造成影響。許多人都知道使用<![CDATA[ ]]>標記來避免沖突,但是在sql配置中有動態(tài)語句的時候,還是有一些細節(jié)需要特別注意的。

在使用ibatis時,經(jīng)常需要配置待執(zhí)行的sql語句。使用過ibatis的朋友都知道,無可避免的都會碰到一些不兼容、沖突的字符,多數(shù)人也都知道用<![CDATA[ ]]>標記避免Sql中與xml規(guī)范相沖突的字符對xml映射文件的合法性造成影響。但是,如果在ibatis中使用了動態(tài)語句的時候,還是有一些細節(jié)需要注意。下面舉例說明一下:

環(huán)境:oracle、ibatis、java

錯誤例1:符號“<=”會對xml映射文件的合法性造成影響

<select id="find" parameterClass="java.util.Map" resultClass="java.lang.Long"> 
<![CDATA[  
select id 
from tableA a, 
   tableB b 
 <dynamic prepend="WHERE"> 
 <isNotNull prepend="AND" property="startDate"> 
 a.act_time >= #startDate# 
 and a.act_time <= #endDate# 
 and a.id = b.id 
 </isNotNull>   
 </dynamic>  
 ]]> 
</select>

錯誤例2:將整個sql語句用<![CDATA[ ]]>標記來避免沖突,在一般情況下都是可行的,但是由于該sql配置中有動態(tài)語句(where部分),將導致系統(tǒng)無法識別動態(tài)判斷部分,導致整個sql語句非法。

<select id="find" parameterClass="java.util.Map" resultClass="java.lang.Long">  
select id 
from tableA a, 
   tableB b 
 <dynamic prepend="WHERE"> 
 <isNotNull prepend="AND" property="startDate"> 
 a.act_time >= #startDate#  
 and a.act_time <= #endDate# 
 and a.id = b.id  
 </isNotNull>   
 </dynamic>  
</select>

正確做法:縮小范圍,只對有字符沖突部分進行合法性調整。

<select id="find" parameterClass="java.util.Map" resultClass="java.lang.Long">  
select id 
from tableA a, 
   tableB b 
 <dynamic prepend="WHERE"> 
 <isNotNull prepend="AND" property="startDate"> 
 a.act_time >= #startDate#  
 <![CDATA[ and a.act_time <= #endDate# ]]> 
 and a.id = b.id  
 </isNotNull>   
 </dynamic>  
</select>

總結:

在用CDATA的時候,只用把可能產生沖突的那段代碼包含就可以了,不要盲目的包含。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • SpringBoot任務調度器的實現(xiàn)代碼

    SpringBoot任務調度器的實現(xiàn)代碼

    SpringBoot自帶了任務調度器,通過注解的方式使用。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • Elasticsearch?mapping?概念及自動創(chuàng)建示例

    Elasticsearch?mapping?概念及自動創(chuàng)建示例

    這篇文章主要為大家介紹了Elasticsearch?mapping?概念及自動創(chuàng)建示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • Spring boot框架下的RabbitMQ消息中間件詳解

    Spring boot框架下的RabbitMQ消息中間件詳解

    這篇文章詳細介紹了Spring Boot框架下的RabbitMQ消息中間件的基本概念、消息傳輸模型、環(huán)境準備、Spring Boot集成以及消息生產和消費,感興趣的朋友跟隨小編一起看看吧
    2025-01-01
  • Java中常用的設計模式之單例模式詳解

    Java中常用的設計模式之單例模式詳解

    這篇文章主要為大家詳細介紹了Java中常用的設計模式之單例模式,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • Java中indexOf()的用法小結

    Java中indexOf()的用法小結

    這篇文章主要介紹了Java中indexOf()的用法小結,indexOf()有四種方法,用來查找某個字符或字符串的位置,本文通過示例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2024-01-01
  • Java實現(xiàn)兩個隨機數(shù)組合并進行排序的方法

    Java實現(xiàn)兩個隨機數(shù)組合并進行排序的方法

    本文主要介紹了Java實現(xiàn)兩個隨機數(shù)組合并進行排序的方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Socket+JDBC+IO實現(xiàn)Java文件上傳下載器DEMO詳解

    Socket+JDBC+IO實現(xiàn)Java文件上傳下載器DEMO詳解

    這篇文章主要介紹了Socket+JDBC+IO實現(xiàn)Java文件上傳下載器DEMO詳解,需要的朋友可以參考下
    2017-05-05
  • java文件上傳下載功能實現(xiàn)代碼

    java文件上傳下載功能實現(xiàn)代碼

    這篇文章主要為大家詳細介紹了java文件上傳下載功能實現(xiàn)代碼,具有一定的參考價值,感興趣的朋友可以參考一下
    2016-06-06
  • Idea中maven項目實現(xiàn)登錄驗證碼功能

    Idea中maven項目實現(xiàn)登錄驗證碼功能

    這篇文章主要介紹了Idea中maven項目實現(xiàn)登錄驗證碼功能,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • Springboot項目Maven依賴沖突的問題解決

    Springboot項目Maven依賴沖突的問題解決

    使用Spring Boot和Maven進行項目開發(fā)時,依賴沖突是一個常見的問題,本文就來介紹一下Springboot項目Maven依賴沖突的問題解決,具有一定的參考價值,感興趣的可以了解一下
    2024-07-07

最新評論

修文县| 桦甸市| 襄汾县| 佳木斯市| 绥中县| 观塘区| 凤庆县| 崇义县| 甘孜| 咸宁市| 平山县| 温宿县| 怀集县| 汽车| 汝州市| 沧州市| 宣恩县| 龙陵县| 武川县| 古田县| 牙克石市| 旺苍县| 卢龙县| 淮阳县| 阿图什市| 醴陵市| 姚安县| 阜平县| 尉氏县| 合川市| 元阳县| 三穗县| 开远市| 双流县| 綦江县| 遂宁市| 佛冈县| 宣恩县| 荆州市| 茌平县| 松江区|