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

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

此标记用于xml文档中,我们先来看看使用转义符的情况。
我们知道,在xml中,”<”、”>”、”&”等字符是不能直接存入的,
否则xml语法检查时会报错,如果想在xml中使用这些符号,必须将其转义为实体,
如”<”、”>”、”&”,这样才能保存进xml文档。

在XML中,需要转义的字符有:
  (1)&   &
  (2)<   <
  (3)>   >
  (4)"   "
  (5)'   '

<![CDATA[ ${value}]]> 是取里面的value的值;也可以写成#{value};

${value} ${}是字符串拼接,容易sql注入问题;
#{value} #{}是传过来的value是一个字符串,不会出现sql注入问题;

总结:就是<![CDATA[ ]]>里面的值不会被xml解析,写什么是什么不会变

![CDATA[ ]相关推荐

  1. mybatis中![CDATA[]]的作用

    此篇文章引自QH_JAVA的文章 在使用mybatis 时我们sql是写在xml 映射文件中,如果写的sql中有一些特殊的字符的话,在解析xml文件的时候会被转义,但我们不希望他被转义,所以我们要使用 ...

  2. XML 特殊字符处理和 CDATA

    在处理XML数据时,特殊字符要特殊处理,不能和节点字符混淆. 所有 XML 文档中的文本均会被解析器解析. 只有 CDATA 区段(CDATA section)中的文本会被解析器忽略. PCDATA ...

  3. asp.net webapi 序列化为xml 时实体属性增加![CDATA[]]防止特殊字符

    有时webapi在序列化xml时,可能需要给某些带有html或特殊字符(如 < > & /)的字段加上<![CDATA[]]> 已防止影响xml正常数据,如果使用.as ...

  4. XML CDATA概述

    XML 文档中的所有文本均会被解析器解析.只有 CDATA 区段中的文本会被解析器忽略. PCDATA - 被解析的字符数据 XML 解析器通常会解析 XML 文档中所有的文本. 当某个 XML 元素 ...

  5. R语言将dataframe数据从宽表(wide)变为长表(long)实战:tidyr包的gather函数、cdata包的unpivot_to_blocks函数、data.table使用melt函数

    R语言将dataframe数据从宽表(wide)变为长表(long)实战:tidyr包的gather函数.cdata包的unpivot_to_blocks函数.data.table使用melt函数 目 ...

  6. XML中CDATA及其字符实体的使用

    在写xml文档时,偶尔会用到一些特殊字符,如<.>.&等,如下面这段程序: <?xml version="1.0"?> <y>if x& ...

  7. 1.spring:helloword/注入/CDATA使用/其他Bean/null级联/p命名空间

    新建工程,导入jar,添加spring配置文件(配置文件xxxx.xml)! 1.Helloword实现 Helloword.java public class HelloWord {private ...

  8. matlab scatter cdata,matlab cdatamapping

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

  9. XML中的CDATA是什么

    XML 解析器通常情况下会处理XML文档中的所有文本. 当XML元素被解析的时候,XML元素内部的文本也会被解析: <!--<br/ /><br/ />Code high ...

  10. mapper中的CDATA标签的用法

    术语 CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data). 在 XML 元素中,"<" 和 "&& ...

最新文章

  1. 嵌入式c语言为什么变量定义在前面,嵌入式C语言数据类型和变量详解
  2. Maven学习小结(七 生命周期[转])
  3. java接口版本控制_为什么要在Java中控制类和接口的可见性
  4. layui 鼠标移入变为小手_游戏技术上不去?看看外设选对没!鼠标篇
  5. 对数据“投入”却没有“产出”?听听 Gartner 的最新分析
  6. JS的Touch事件们
  7. Robot Framework 自动化框架大纲
  8. fatal: could not read Username for ‘https://git.dev.tencent.com‘ 解决方法
  9. Linux 录屏软件有哪些?
  10. 史上最详细的UE4安装教程(没有之一,就是史上最详细,不服气你来打我呀)
  11. Vue使用Echarts控件实现图表设计
  12. C/C++ 电脑微信dat文件解密及工具分享
  13. 系统集成项目管理工程师备考资料(口袋应试第二版)14
  14. MVP模式在项目中的使用
  15. 喜羊羊与灰太狼java_喜羊羊与灰太狼之懒洋洋风波
  16. 全球首位亿万富豪上太空!
  17. 基于流量分析的安全检测解决方案
  18. 汇聚数据库创新力量,加速企业数字化转型
  19. react利用react-activation实现子路由缓存
  20. 处理:“更改会计科目表前重置公司码数据”报错

热门文章

  1. GIS技术在土地规划管理中的作用
  2. cesium实现地球自转功能
  3. 项目管理之美连载(二)
  4. H5微信播放全屏问题
  5. 景深计算公式的推导[转]
  6. HTML文本框自动显示当前年月日
  7. kali2020 忘记密码
  8. 计算机主板启动加密码,【开机bios密码设定】开机有bios密码_开机bios密码
  9. 基于JAVA网上求职招聘系统计算机毕业设计源码+数据库+lw文档+系统+部署
  10. Python之else用法