【MyBatis】CDATA标签和xml字符转义

标签

XML 格式不支持解析 “&”、“<”、“>”等符号,这些字符在xml解析的时候会被转义,解决方法

  1. 加上CDATA标签避免报错。在该标签内的语句,将不会被当成字符串来处理,而是直接当成sql语句;
    1. 是xml语法,在内部的所有内容都会被解析器忽略,**不进行转义**
    2. 在mybatis中像这样的标签如果放在中也会被解析器忽略,所以要尽可能缩小的范围
  2. 转义字符

转义字符

原符号 转移符号 释义
< < 小于
> > 大于
& &
' 单引号
" " 双引号

测试代码

【MyBatis】CDATA标签和xml字符转义_第1张图片

<select id="forShow" resultType="java.util.Map">
    select *
    from
    test_table
    where
    <choose>
        <when test='param1 == "1"'>
            ord < 2     
        when>
        <when test='param1 == "2"'>
                 
        when>
        <when test='param1 == "3"'>
            ord  2   
        when>
        <when test='param1 == "4"'>
            ord < 2     
        when>
        <when test='param1 == "5"'>
            ord > 2
        when>
        <when test='param1 == "6"'>
            TEST_ID = "1"
        when>
        <when test='param1 == "7"'>
            TEST_ID = '2'
        when>
    choose>
select>

测试结果

经过测试,

  1. 在xml中使用 <的时候是不会通过编译的
  2. >'"三者可以在xml的sql中使用;
  3. &的测试代码有待探究

你可能感兴趣的:(Mybatis,MySQL,xml,mysql,mybatis,java)