欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MyBatis中特殊符號的轉(zhuǎn)義

 更新時間:2024年01月16日 11:28:37   作者:笑紅塵自來也  
編寫SQL中會用到<,>,,>= 等,但是在mybatis中不可以這么寫,與xml文件的元素沖突,所以需要轉(zhuǎn)義,本文主要介紹了MyBatis中特殊符號的轉(zhuǎn)義,主要介紹了兩種轉(zhuǎn)義方式,感興趣的可以了解一下

描述

MyBatis中特殊符號的轉(zhuǎn)義,有兩種方式轉(zhuǎn)義。

第一種

描述空格小于大于小于等于大于等于單引號雙引號
原符號<><=>=&"
轉(zhuǎn)義符&nbsp;&lt;&gt;&lt;=&gt;=&amp;&apos;&quot;
<select id = "selectUserByAge" resultType="com.test.hiioc.model.UserTable" >
    select
        id,userName,age
    from
        userTable
    <where>
    	1 = 1
        <if test = "userTable.startDate!=null">
            SIGNING_DATE &gt;= #{userTable.startDate}
        </if>
        <if test = "userTable.endDate != null">
            and SIGNING_DATE &lt;= #{userTable.endDate}
        </if>
    </where>
</select>

在編寫MyBatis的XML映射文件時,對于需要在SQL語句中使用的這些特殊字符,應當使用上表中的轉(zhuǎn)義寫法。例如,如果你想在<if>標簽中使用大于號,你應該這樣寫:

<if test="value &gt; 10">
  ...
</if>

這樣,當MyBatis解析XML文件時,會將>正確地解釋為大于號(>),而不會與XML標簽的結(jié)束符混淆。

同理,如果需要在SQL語句中使用小于號,應該使用<。例如:

<if test="value &lt; 10">
  ...
</if>

對于其他特殊字符,如你需要在SQL語句中包含一個字面上的&字符,你應該寫成&,以免XML解析器將其誤認為是一個實體的開始。

第二種

使用 <![CDATA[>=]]> 進行轉(zhuǎn)義

<select id = "selectUserByAge" resultType="com.test.hiioc.model.UserTable" >
    select
        id,userName,age
    from
        userTable
    <where>
        IS_DELETE = 1
        /*時間段查詢*/
        <if test = "userTable.startDate != null">
            and SIGNING_DATE <![CDATA[>=]]> #{userTable.startDate}
        </if>
        <if test = "userTable.endDate!=null">
            and SIGNING_DATE <![CDATA[<=]]> #{userTable.endDate}
        </if>
    </where>
</select>

 代碼舉例2

            <if test="demoWay != null  and test="demoWay != '' ">
                <if test="demoWay == 'equal' ">
                    <![CDATA[ and demo_str = #{demoStr} ]]> </if>
                <if test="demoWay == 'gt' ">
                    <![CDATA[ and demo_str > #{demoStr} ]]> </if>
                <if test="demoWay == 'lt' ">
                    <![CDATA[ and demo_str < #{demoStr} ]]> </if>
                <if test="demoWay == 'gte' ">
                    <![CDATA[ and demo_str >= #{demoStr} ]]> </if>
                <if test="demoWay == 'lte' ">
                    <![CDATA[ and demo_str <= #{demoStr} ]]> </if>
            </if>

代碼舉例3

SELECT
        d.`name` dept,
        count( * ) xx_num,
        sum( CASE e.result WHEN 1 THEN 1 ELSE 0 END ) qq_num,
        sum( CASE e.result WHEN 1 THEN 1 ELSE 0 END )/count( * ) qq_percent,
        sum( CASE WHEN e.xx<![CDATA[>= ]]> 90 THEN 1 ELSE 0 END ) qq1,
        sum( CASE WHEN e.xx<![CDATA[<= 89 AND e.xx >= ]]> 80 THEN 1 ELSE 0 END ) qq2,
        sum( CASE WHEN e.xx<![CDATA[<= 79 AND e.xx >= ]]> 70 THEN 1 ELSE 0 END ) qq3,
        sum( CASE WHEN e.xx<![CDATA[<= 69 AND e.xx >= ]]> 60 THEN 1 ELSE 0 END ) qq4,
        sum( CASE WHEN e.xx<![CDATA[<= ]]> 59 THEN 1 ELSE 0 END ) qq5
        FROM
        ee e

注意事項

  • 當使用<![CDATA[ ... ]]>時,需要注意不要讓]]>出現(xiàn)在你的SQL語句中,因為這是CDATA區(qū)塊的結(jié)束標記。
  • 在某些情況下,混合使用CDATA和轉(zhuǎn)義字符可能會使SQL語句更清晰易讀,尤其是在SQL語句非常長或復雜時。

到此這篇關(guān)于MyBatis中特殊符號的轉(zhuǎn)義的文章就介紹到這了,更多相關(guān)MyBatis 特殊符號轉(zhuǎn)義內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • MyBatis使用注解開發(fā)和無主配置文件開發(fā)的情況

    MyBatis使用注解開發(fā)和無主配置文件開發(fā)的情況

    這篇文章主要介紹了MyBatis使用注解開發(fā)和無主配置文件開發(fā)的情況,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • 關(guān)于ArrayList初始創(chuàng)建設定長度問題

    關(guān)于ArrayList初始創(chuàng)建設定長度問題

    在使用ArrayList時,初始化長度并不等同于直接設定數(shù)組大小,如通過構(gòu)造函數(shù)指定長度,僅僅是在內(nèi)部開辟了相應的存儲空間,并不會改變ArrayList的實際元素個數(shù),即size屬性仍然為0,因此,嘗試直接訪問未實際添加元素的位置會引發(fā)異常
    2024-11-11
  • 全方位解析key值不確定的json數(shù)據(jù)

    全方位解析key值不確定的json數(shù)據(jù)

    這篇文章主要介紹了全方位解析key值不確定的json數(shù)據(jù),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • Java中的while無限循環(huán)結(jié)構(gòu)及實例

    Java中的while無限循環(huán)結(jié)構(gòu)及實例

    這篇文章主要介紹了Java中的while無限循環(huán)結(jié)構(gòu)及實例,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • SpringBoot解決406錯誤之返回對象缺少Getter/Setter方法引發(fā)的問題

    SpringBoot解決406錯誤之返回對象缺少Getter/Setter方法引發(fā)的問題

    在Spring Boot開發(fā)中,接口請求返回數(shù)據(jù)是系統(tǒng)交互的重要環(huán)節(jié),然而,開發(fā)過程中常常會遇到由于數(shù)據(jù)類型或返回格式問題導致的錯誤,其中最常見的就是406 Not Acceptable異常,本篇文章以實際的案例出發(fā),詳細分析在POST請求中產(chǎn)生406錯誤的原因
    2024-11-11
  • SpringBoot整合Java Web三大件的詳細過程

    SpringBoot整合Java Web三大件的詳細過程

    這篇文章主要介紹了SpringBoot整合Java Web三大件的詳細過程,注冊自定義的Servlet、Filter、Listener組件到springboot內(nèi)嵌的Servlet容器,讓它們發(fā)揮自己的作用,需要的朋友可以參考下
    2025-04-04
  • java面試應用上線后Cpu使用率飆升如何排查

    java面試應用上線后Cpu使用率飆升如何排查

    這篇文章主要為大家介紹了java面試中應用上線后Cpu使用率飆升如何排查的方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • Java關(guān)于MyBatis緩存詳解

    Java關(guān)于MyBatis緩存詳解

    緩存的重要性是不言而喻的,使用緩存,我們可以避免頻繁的與數(shù)據(jù)庫進行交互,尤其是在查詢越多、緩存命中率越高的情況下,使用緩存對性能的提高更明顯。本文將給大家詳細的介紹,對大家的學習或工作具有一定的參考借鑒價值
    2021-09-09
  • EDI中JAVA通過FTP工具實現(xiàn)文件上傳下載實例

    EDI中JAVA通過FTP工具實現(xiàn)文件上傳下載實例

    這篇文章主要介紹了EDI中JAVA通過FTP工具實現(xiàn)文件上傳下載實例,具有一定的參考價值,有需要的可以了解一下。
    2016-11-11
  • Mybatis?在?insert?插入操作后返回主鍵?id的操作方法

    Mybatis?在?insert?插入操作后返回主鍵?id的操作方法

    這篇文章主要介紹了Mybatis?在?insert?插入操作后返回主鍵?id的操作方法,本文結(jié)合示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12

最新評論