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

  • 相关阅读:
    【结对编程收获】
    【第二次个人作业】结对作业Core第一组:四则运算生成PB16061082+PB16120517
    【第七周读书笔记】读《计算机系统详解》
    【第五周课堂作业】创新案例分析
    【第六周读书笔记】计算机体系结构读后感
    个人总结——马睿淳
    团队项目心得(6.15)
    团队项目心得
    《代码大全》读书笔记——第九周
    《我是一只IT小小鸟》(续)读书笔记——第八周
  • 原文地址:https://www.cnblogs.com/baobeiqi-e/p/10042847.html
Copyright © 2011-2022 走看看