• 为什么的Mapper文件中的"<"、">" 要转成“&lt ;”、“&gt ;”


    mybatis的Mapper文件中的大于小于号,为什么要转成“< ;”、“> ;”,转义后的lt、gt又代表什么?

    为什么的Mapper文件中的"<"、">" 要转成“&lt ;”、“&gt ;”

    问题分析

    mybatis中的mapper文件是xml文件,不允许出现类似“>”这样的字符,会与文件本身的标签"<xxx>"冲突,

    就像mysql中有些关键字(如:select、insert等)不允许当做字段名,会引起冲突;

    处理方式

    1.用转义字符把>和<替换掉,使后台能够正常解析这个xml文件

    XML中需要转义的字符有:

    字段

    符号

    说明

    &lt ;

    <

    小于号

    &gt ;

    >

    大于号

    &amp ;

    &

    &apos ;

    '

    单引号

    &quot ;

    "

    双引号

    原SQL
    
    
    select * from table where createTime >'2019-10-10' and createTime <= '2019-10-20' 
    
    修改后SQL:
    select * from table where createTime &gt; '2019-10-10' and createTime &lt;= '2019-10-20' 
     

    2.增加声明标志:<![CDATA[]]>

    被<![CDATA[]]>这个标记所包含的内容将表示为纯文本,后台会原样解析并执行

    SELECT *FROM table
        <where>
            <!-- 录入日期 范围 -->
            <if test="date_st != '' and date_ed != ''">
                <![CDATA[
                    and createTime >= #{date_st} and createTime =< #{date_ed}
                ]]>
            </if>
        </where>

    ’另外“&lt ;”,“&gt ;”,“&ge ;”这些转移字符都是什么含义呢?

    EQ: EQUAL → 等于

    NE: NOT EQUAL → 不等于

    GT: GREATER THAN → 大于 

    LT : LESS THAN → 小于

    GE: GREATER THAN OR EQUAL → 大于等于

    LE: LESS THAN OR EQUAL → 小于等于

  • 相关阅读:
    leetcode二叉树相同的树
    leetcode二叉树中序遍历
    leetcode二叉树前序遍历
    leetcode数组中级Lc287.寻找重复数
    概要设计说明书
    leetcode二叉树对称二叉树
    小数点处理详解:切舍、切上、四舍五入
    C++多态的两种使用方式
    让Ogre的资源管理器为我们服务
    地形纹理Splatting技术(翻译)
  • 原文地址:https://www.cnblogs.com/dragon-lan/p/15351920.html
Copyright © 2020-2023  润新知