前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mybatis中出现CDATA的作用

mybatis中出现CDATA的作用

作者头像
斯文的程序
发布2019-11-07 16:56:09
3.5K0
发布2019-11-07 16:56:09
举报
文章被收录于专栏:带你回家

术语 CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data)。

在 XML 元素中,"<" 和 "&" 是非法的。

"<" 会产生错误,因为解析器会把该字符解释为新元素的开始。

"&" 也会产生错误,因为解析器会把该字符解释为字符实体的开始。

某些文本,比如 JavaScript 代码,包含大量 "<" 或 "&" 字符。为了避免错误,可以将脚本代码定义为 CDATA。

CDATA 部分中的所有内容都会被解析器忽略。

CDATA 部分由 "<![CDATA[" 开始,由 "]]>" 结束:

<![CDATA[ function matchwo(a,b) { if (a < b && a < 0) then { return 1; } else { return 0; } } ]]>

在mapper文件中写sql语句时,遇到特殊字符时,如:< 等,建议使用<![CDATA[ sql 语句 ]]>标记,将sql语句包裹住,不被解析器解析

例子:

分别根据不同条件查数据,获得一个list,元素为每个查询的结果条目数,多用于校验

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

<!-- 校验中文名和英文名是否存在 返回长度为2的list --> <select id="getMenuCnameAndEnameCount" parameterType="com.ebon.platform.menu.vo.SysMenu" resultType="Integer"> SELECT COUNT(ID) FROM SYS_MENU M WHERE M.CNAME = #{cname} AND M.PARENT_ID = #{parentId} AND M.DELETE_FLAG = 0 <if test="null!=id and id!=''"> AND M.ID <![CDATA[<]]> <![CDATA[>]]> #{id} </if> UNION ALL SELECT COUNT(ID) FROM SYS_MENU M WHERE M.ENAME = #{ename} AND M.PARENT_ID = #{parentId} AND M.DELETE_FLAG = 0 <if test="null!=id and id!=''"> AND M.ID <![CDATA[<]]> <![CDATA[>]]> #{id} </if> </select>

注:不等于<>,在mybatis中需要转义 用<![CDATA[<]]> 分别对大于和小于转义

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档