问题

在品种开发中,使用到了ibatis作为项目标数据库访问持久层。在sqlmap的XML配置文件中编辑一条SQL语句时,碰到这么的难题:where条件中总结了判断出生日期在某一段时间内。
刚开首自身是如此写的

<isNotEmpty property="ageBeginTime" prepend=" and ">
             A.CSRQ>=#ageBeginTime#
</isNotEmpty>
<isNotEmpty property="ageEndTime" prepend=" and ">
           A.CSRQ<=#ageEndTime#
 </isNotEmpty>

那时IDE就报出了配备出错的新闻
由此查看资料,精通是度量规范中的大于>和小于<出错,它会使XML解析器产生模糊。也就如JSON格式中出现双引号会使得格式出错的现象。
那么解决办法,也正是对超越和小于举办转义,将过量号>改为&gt;、小于号<改为&lt;
除此以外在翻看资料中,在看别人写的SQL中,使用到的是下面那种情势来严防特殊字符的。

 <isNotEmpty property="ageBeginTime" prepend=" and ">
            <![CDATA[ A.CSRQ>=#ageBeginTime# ]]>
 </isNotEmpty>
 <isNotEmpty property="ageEndTime" prepend=" and ">
            <![CDATA[ A.CSRQ<=#ageEndTime# ]]>
 </isNotEmpty>

通过<![CDATA[条件值]]>来化解此题材。
立马一贯不探索,不过尔尔用了。后来今日在一本书看到了关于此难题更详实的描述。

处理格局

在XML中有多少个特殊的字段,分别是: & < >

只要XML配置文件中的注入值包涵这有的特殊字符的话,就必要尤其的处理。
处理形式有三种:
1、使用<![CDATA[]]>本条标签将席卷特殊字符的注入值封装起来
2、使用XML转义序列代表这么些特殊字符

七个标志的转义种类如下:

  • 小于号<对应的是&lt;
  • 出乎号>对应的是&gt;
  • 合并符&对应的是&amp;
  • 双引号”对应的是&quot;
  • 单引号’对应的是&apos;

备注

在马克Down中为防范&gt;被一向解析成了;,能够应用`标记将其包装起来。

相关文章

网站地图xml地图