MyBatis SQL xml处理小于号与大于号

摘要:
当我们需要通过xml格式处理SQL语句时,我们经常使用˂、、˃=等符号,但这很容易导致xml格式中的错误,这将导致在后台将xml字符串转换为xml文档时出错,从而导致程序错误。[CDATA[SQL代码]]˃例如:#{start}]]˃像这样的问题通常需要我们在iBatiS或用户定义的xml处理sql程序中处理。事实上,这很简单。我们只需要替换原始符号˂=&'“替换符号<<=>>='"错误的xml格式:ANDSTART_DATE˃=to_dateANDSTART_ATE˂=to_DATEaltovaXMLSpy工具中将报告错误,并且xml不符合格式要求。正确的xml格式:˂?

当我们需要通过xml格式处理sql语句时,经常会用到< ,<=,>,>=等符号,但是很容易引起xml格式的错误,这样会导致后台将xml字符串转换为xml文档时报错,从而导致程序错误。
【mybatis可以使用】

<![CDATA[
    SQL代码
]]>



例如:

<select resultType="java.lang.String">
    <![CDATA[
        select a1.xml_blob as xmlBlob
          from (select t.xml_blob, rownum rn
                  from (select *
                          from aj_i_transmission j
                         order by instr('I,RC,D', j.transactioncode)) t
                 where 1 = 1
                 and t.object_gid is not null
                 and t.transactioncode is not null
                   and t.status = 'E'
                   and t.insert_date < #{date}
                   and t.create_date > sysdate - 3
                   and t.element_name = #{elementName}
                   and rownum <= #{end}
                 ) a1
         where rn > #{start}
          ]]>
   </select>



这样的问题在iBatiS中或者自定义的xml处理sql的程序中经常需要我们来处理。其实很简单,我们只需作如下替换即可避免上述的错误:


原符号   <    <=      >       >=       &        '        "
替换符号&lt; &lt;=  &gt;    &gt;=   &amp;   &apos;  &quot;

 
错误的xml格式:

<?xml version="1.0" encoding="GBK"?>  
<queryForm token="32sdfj-349sfdnfs32-fsdf348imfg323-df34" tableName="HSY_T_CUSTOMER" pageSize="20" pageNo="1" orderColumn="" orderType="">  
  <sqlCondition> AND START_DATE >= to_date('2013-01-01','yyyy-MM-dd') AND START_DATE <= to_date('2013-01-30','yyyy-MM-dd') </sqlCondition>  
</queryForm>  



在altova XMLSpy工具中会报错,xml不符合格式要求。

正确的xml格式:

<?xml version="1.0" encoding="GBK"?>  
<queryForm token="32sdfj-349sfdnfs32-fsdf348imfg323-df34" tableName="HSY_T_CUSTOMER" pageSize="20" pageNo="1" orderColumn="" orderType="">  
  <sqlCondition> AND START_DATE &gt;= to_date('2013-01-01','yyyy-MM-dd') AND START_DATE &lt;= to_date('2013-01-30','yyyy-MM-dd') </sqlCondition>  
</queryForm>  



在altova XMLSpy工具中验证通过。

T

免责声明:文章转载自《MyBatis SQL xml处理小于号与大于号》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Ubuntu 针对 SSD 的优化方案Linux_free(buffer与cache区别) 天高地厚下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

微信公众平台开发(二):交互与接口

1、微信用户、微信服务器和后台服务器的交互 例:微信用户向公众号发送一条文本消息,这条消息会首先传给微信服务器,微信服务器处理这条信息并将其以xml数据格式传递给后台服务器,后台服务器接受到数据后会对数据进行处理,再响应数据以xml数据格式传递给微信服务器,微信服务器再响应到用户微信界面。 微信用户与微信后台服务器之间的交互过程就是数据传递过程,只不过需...

Mybatis-第N篇配置log4j1、log4j2打印执行的sql语句

1、log4j1配置    目录结构:       conf.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/myba...

JavaScriptDate(日期)

如何使用Date()方法获取当日的日期。 getFullYear(); 使用getFullYear()获取年份。 getTime(); getTime()返回1970年1月1日至今的毫秒数。 setFullYear(); 使用setFullYear()设置具体日期。 toUTCString(); 使用toUTCString()将当前日期(根据UTC)转换为...

使用Mybatis执行sql脚本

pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"...

C#调用WebService

1.1、Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。 XML:(Extensible Mark...

通过mybatis向数据库中插入日期数据

遇到的问题: 通过mybatis向数据库中插入日期格式数据,发现只有年月日, 没有小时分钟和秒 当你想在实体类中使用java.util.Date类型,而且还想在数据库中保存时分秒时, 解决办法: 你可以在xml中修改为: #{xxdate,jdbcType=TIMESTAMP} 就是将#{}中的jdbcType属性设置成TIMESTAMP,这样在保存的时候...