MyBatis 教程

MyBatis 笔记

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/mybatis-less-than-proper-syntax.html

MyBatis 大于小于 xml 转义操作

MyBatis 笔记 MyBatis 笔记


MyBatis 的 xml 配置中如果直接把包含大于/小于的 sql 写入,提示编译错误,如何解决此类问题?

解释

在 XML 文档中放置了一个类似 "<" 字符,那么这个文档会产生一个错误,这是因为解析器会把它解释为新元素的开始。

这时,针对此类字符需要进行转义,在 XML 中有 5 个预定义的实体引用:

转义 原始 描述
&lt; < 小于
&gt; > 大于
&amp; & 和号
&apos; ' 省略号
&quot; " 引号

除了结合上述提供的 5 个预定义,还可以用 CDATA 标签。

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

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

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

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

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

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

它的语法如下:

<![CDATA[ xxx ]]>

其中 xxx 就是原始的不需要解释器解析的内容。

示例如下:

    <!--  获取屏蔽 id 列表  -->
    <select id="findBlockIdsListByCursor" resultMap="baseResultMap">
        SELECT
        <include refid="baseColumnList"/>
        FROM
        <include refid="tableName"/>
        WHERE `type` >= 1 AND `type` <![CDATA[ <= ]]> 7 AND status = 1
        AND id > #{cursor}
        ORDER BY id limit #{limit}
    </select>

 

在Java中处理XML特殊字符转义通常涉及将预定义的XML实体引用插入到文本中,以确保生成的XML文档是有效的。示例代码:以上是处理XML特 ...
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设 ...
Mybatis 的 insert 语句操作相比 select 简单的多。只有让它返回主键值时,由于不同数据库的主键生成方式不同,这种情况下会 ...
下面列出了 Mybatis 相关开发中常遇到的相关问题的解决方案。 ...
在Java中,符号转义是指将一些特殊字符转换为其对应的转义序列,以便在字符串中表示这些特殊字符。示例代码:###方式三:ApacheComm ...