zoukankan      html  css  js  c++  java
  • MyBatis SQL xml处理小于号与大于号

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

    <![CDATA[
        SQL代码
    ]]>



    例如:

    <select id="getListByElementName" 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

  • 相关阅读:
    JZOJ 2548. 【NOIP2011模拟9.4】最大正方形
    JZOJ 3532. 【NOIP2013提高组day1】转圈游戏
    网络流模板 dinic
    1433: [ZJOI2009]假期的宿舍
    JZOJ 1285. 奶酪厂
    JZOJ 1284. 病毒
    SpringMVC路径匹配规则源码
    RESTful设计风格下SpringMVC的URI设计性能问题
    递归查询mysql数据库设计
    java定时任务调度
  • 原文地址:https://www.cnblogs.com/baobeiqi-e/p/10042847.html
Copyright © 2011-2022 走看看