记录今天在编写Mybatis的mapper.xml文件时的一个错误。
替换形式1:原因是xml文件无法解析 < 符号,应该替换为对应的转义字符形式
替换形式2:这是XML语法。在CDATA内部的所有内容都会被解析器忽略,被<![CDATA[ ]]>这个标记所包含的内容将表示为纯文本
目标形式 | < | <= | > | >= | & |
---|---|---|---|---|---|
替换形式1 | < | <= | > | >= | & |
替换形式2 | <![CDATA[ >= ]]> | <![CDATA[ >= ]]> | <![CDATA[ >= ]]> | <![CDATA[ >= ]]> | <![CDATA[ >= ]> |
用法示例:
个人理解的最佳实践:如果SQL语句使用到的符号比较少,就是用替换形式1;如果用到的比较多,那就直接使用替换形式2。
SELECT ID, AGE, TIME
FROM TEST_FORM
WHERE ID > 12
AND AGE > 10
AND AGE < 23
AND TIME = '2020-11-12'
或者
-- 这种全包的形式,为将全体解析为文本,直接传入数据库。当这个SQL需要接收我们前台传入的值,慎用全包围!!!
<![CDATA[
SELECT ID, AGE, TIME
FROM TEST_FORM
WHERE ID > 12
AND AGE > 10
AND AGE < 23
AND TIME = '2020-11-12'
]]>
或者
SELECT ID, AGE, TIME
FROM TEST_FORM
WHERE ID <![CDATA[ > ]]> 12
AND AGE <![CDATA[ > ]]> 10
AND AGE <![CDATA[ < ]]> 23
AND TIME = '2020-11-12'