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

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

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

描述

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

第一種

描述空格小于大于小于等于大于等于單引號(hào)雙引號(hào)
原符號(hào)<><=>=&"
轉(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>

在編寫(xiě)MyBatis的XML映射文件時(shí),對(duì)于需要在SQL語(yǔ)句中使用的這些特殊字符,應(yīng)當(dāng)使用上表中的轉(zhuǎn)義寫(xiě)法。例如,如果你想在<if>標(biāo)簽中使用大于號(hào),你應(yīng)該這樣寫(xiě):

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

這樣,當(dāng)MyBatis解析XML文件時(shí),會(huì)將>正確地解釋為大于號(hào)(>),而不會(huì)與XML標(biāo)簽的結(jié)束符混淆。

同理,如果需要在SQL語(yǔ)句中使用小于號(hào),應(yīng)該使用<。例如:

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

對(duì)于其他特殊字符,如你需要在SQL語(yǔ)句中包含一個(gè)字面上的&字符,你應(yīng)該寫(xiě)成&,以免XML解析器將其誤認(rèn)為是一個(gè)實(shí)體的開(kāi)始。

第二種

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

<select id = "selectUserByAge" resultType="com.test.hiioc.model.UserTable" >
    select
        id,userName,age
    from
        userTable
    <where>
        IS_DELETE = 1
        /*時(shí)間段查詢(xún)*/
        <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

注意事項(xiàng)

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

    SpringBoot解決406錯(cuò)誤之返回對(duì)象缺少Getter/Setter方法引發(fā)的問(wèn)題

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

    SpringBoot整合Java Web三大件的詳細(xì)過(guò)程

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

    java面試應(yīng)用上線后Cpu使用率飆升如何排查

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

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

    緩存的重要性是不言而喻的,使用緩存,我們可以避免頻繁的與數(shù)據(jù)庫(kù)進(jìn)行交互,尤其是在查詢(xún)?cè)蕉唷⒕彺婷新试礁叩那闆r下,使用緩存對(duì)性能的提高更明顯。本文將給大家詳細(xì)的介紹,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值
    2021-09-09
  • EDI中JAVA通過(guò)FTP工具實(shí)現(xiàn)文件上傳下載實(shí)例

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

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

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

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

最新評(píng)論