<![CDATA[]]>这个标记所包含的内容将表示为纯文本,比如<![CDATA[<]]>表示文本内容“<”。 
  此标记用于xml文档中,我们先来看看使用转义符的情况。我们知道,在xml中,”<””>””&”等字符是不能直接存入的,否则xml语法检查时会报错,如果想在xml中使用这些符号,必须将其转义为实体,如”&lt;””&gt;””&amp;”,这样才能保存进xml文档。 
  在使用程序读取的时候,解析器会自动将这些实体转换回”<””>””&”。举个例子: 
  <age> age < 30 </age> 
  上面这种写法会报错,应该这样写: 
  <age> age &lt; 30 </age> 
  值得注意的是: 
  (1)转义序列字符之间不能有空格; 
  (2) 转义序列必须以”;”结束; 
  (3) 单独出现的”&”不会被认为是转义的开始; 
  (4) 区分大小写。 
   
  在XML中,需要转义的字符有: 
  (1)&   &amp; 
  (2)<   &lt; 
  (3)>   &gt; 
  (4)"   &quot; 
  (5)'   &apos; 
  但是严格来说,在XML中只有”<”和”&”是非法的,其它三个都是可以合法存在的,但是,把它们都进行转义是一个好的习惯。 
  不管怎么样,转义前的字符也好,转义后的字符也好,都会被xml解析器解析,为了方便起见,使用<![CDATA[]]>来包含不被xml解析器解析的内容。但要注意的是: 
  (1) 此部分不能再包含”]]>”; 
  (2) 不允许嵌套使用; 
  (3)”]]>”这部分不能包含空格或者换行。 
  最后,说说<![CDATA[]]>和xml转移字符的关系,它们两个看起来是不是感觉功能重复了? 
  是的,它们的功能就是一样的,只是应用场景和需求有些不同: 
  (1)<![CDATA[]]>不能适用所有情况,转义字符可以; 
  (2) 对于短字符串<![CDATA[]]>写起来啰嗦,对于长字符串转义字符写起来可读性差; 
  (3) <![CDATA[]]>表示xml解析器忽略解析,所以更快。

mybatis中<![CDATA[   ]]> 的作用

在使用mybatis 时我们sql是写在xml 映射文件中,如果写的sql中有一些特殊的字符的话,在解析xml文件的时候会被转义,但我们不希望他被转义,所以我们要使用<![CDATA[ ]]>来解决。

<![CDATA[   ]]> 是什么,这是XML语法。在CDATA内部的所有内容都会被解析器忽略。

如果文本包含了很多的"<"字符 <=和"&"字符——就象程序代码一样,那么最好把他们都放到CDATA部件中。

但是有个问题那就是 <if test="">   </if>   <where>   </where>  <choose>  </choose>  <trim>  </trim> 等这些标签都不会被解析,所以我们只把有特殊字符的语句放在 <![CDATA[   ]]>  尽量缩小 <![CDATA[  ]]> 的范围。

实例如下:

<select id="allUserInfo" parameterType="java.util.HashMap" resultMap="userInfo1">
<![CDATA[
SELECT newsEdit,newsId, newstitle FROM shoppingGuide WHERE 1=1 AND newsday > #{startTime} AND newsday <= #{endTime}
]]>
<if test="etidName!=''">
AND newsEdit=#{etidName}
</if>
</select>
因为这里有 ">"  "<=" 特殊字符所以要使用 <![CDATA[   ]]> 来注释,但是有<if> 标签,所以把<if>等 放外面

![CDATA[]] 的基本介绍相关推荐

  1. ![CDATA[]] 的基本介绍

    被<![CDATA[]]>这个标记所包含的内容将表示为纯文本,比如<![CDATA[<]]>表示文本内容"<".  此标记用于xml文档中,我们 ...

  2. 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第50讲:PHP中的xml编程

    陈力:传智播客古代 珍宝币 泡泡龙游戏开发第50讲:PHP中的xml编程 Xml是extensiable markup language的简称,包括文档声明.元素.属性.注释.CDATA区.特殊字符 ...

  3. matlab画动漫,matlab绘制gif

    想自己画一个卷积动态生成的图便于理解,但是没有找到具体如何使用matlab来绘制gif的教程,还是得自己动手看官方文档啊! 1. animatedline 介绍: an = animatedline ...

  4. 扫二维码关注服务号同时发现金红包

    本文只是记录一下自己最近开发的一个小功能,方便以后查看. 一.需求原文如下: 1.vip微信参数配置 1)是否启用 2)设置每单最大红包金额    (例如5 ) 3)设置各类别 红包金额范围 钻石   ...

  5. 组件封装为mxp文件的方法

    组件封装为mxp文件的方法 发布于:2007-2-18 13:24:44来源:不详阅读次数:本日:1 本周:3 本月:3 总数:135 TAG列表:暂时还没有tag 1.必须安装extension m ...

  6. php cdata,PHPcdata处理(详细介绍)_PHP教程

    PHPcdata处理(详细介绍)_PHP教程 当时在网上找了一个CDATA的转换器, 修改之后, 将CDATA标签给过滤掉.如下 代码如下: // States: // // 'out' // ' / ...

  7. /*CDATA*/介绍

    重要的事情写在前面,这东西对新手来说真是个巨坑,今天调整代码结构的时候,删掉了大量无用的注释,突然发现删着删着崩掉了,WTF,删注释都能删崩?!后来一行一行回滚,发现了 这个鬼东西,一删就报错,百度了 ...

  8. FLEX SharedObject介绍及应用

    ShareObject介绍: 1 ShareObject,顾名思义共享对象,而通常意义上的共享,从B/S结构上来讲,无非是客户端(浏览器端)的共享和服务器端的共享了,不错,ShareObject刚好份 ...

  9. matlab scatter cdata,matlab cdatamapping

    (x,y,z,'Cdata',flipud(c1),'FaceColor','texturemap',... 'EdgeColor','none','CDataMapping','direct','A ...

最新文章

  1. AlertDialog和自定义对话框
  2. SpringData核心数据访问接口--CrudRepository示例
  3. 系统弹出菜单类名是固定的. #32769
  4. 使用Gradle构建Monorepo项目
  5. 促销海报灵感素材,不卖出去都难
  6. java excel自动保存_比POI好用的EasyExcel简单使用记录
  7. java词频统计——web版支持
  8. python爬取新浪博客_Python爬取韩寒所有新浪博客
  9. 正则表达式,json表达式
  10. 超大流量分布式系统架构解决方案
  11. tc2 怎么编写c语言6,WinTC.EXE:TC for Windows (TC2 C语言编译器)
  12. FFmpeg之音频封装格式、音频编解码器
  13. 第十三届蓝桥杯C++B组国赛D题——最大数字(AC)
  14. 2021年10月语音合成和语音识别论文月报
  15. yii2项目实战-博客管理平台的搭建
  16. 2018 新一代人工智能院士高峰论坛 总结文章
  17. 有什么JAVA 网站或者论坛资料丰富呢
  18. 资本网红张拉拉,一面狂奔突进,一面隐忧渐显
  19. 什么是 web 容器(如tomcat)
  20. php 编辑器 插入视频,织梦dedecms默认编辑器实现上传视频功能

热门文章

  1. ubuntu18.04修改屏幕休眠时间
  2. 用手机如何把PDF转成PPT文件
  3. Excel导出 并完成后自动打开
  4. opencv之图像翻转、平移、缩放、旋转、仿射学习笔记
  5. 华科计算机学院新生家长群是多少,关于开通2020级本科和研究生新生群及新生家长群的公告...
  6. java机试题---2021(算法)
  7. Jump Crypto:详解五大多链架构的特点与优劣势
  8. 关于Vivado综合选项——Out of context per IP和Gobal
  9. 制作一个简单的新闻客户端
  10. 腾讯云服务器外网访问