Mybatis特殊字符处理

Posted PC猪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis特殊字符处理相关的知识,希望对你有一定的参考价值。

XML文档中包含类似"Elements look like <this>"的文本,其中的"<this>"将被解析程序解释成一个元素,而人们实际想要的是"<this>"所表示的原义文本。

1.CDATA区:它的全称为character data,以"<![CDATA[ "开始,以" ]]>" 结束,在两者之间嵌入不想被解析程序解析的原始数据,解析器不对CDATA区中的内容进行解析,而是

将这些数据原封不动地交给下游程序处理。

2.特殊字符 :

xml 中表示:   <= 小于等于、    >= 大于等于 需加  这样的标记:     <![CDATA[   ]]>      xml中有&的符号,需要<![CDATA[&]]>这样表示&

 

<= 小于等于 :<![CDATA[   <=  ]]>

 

 

>= 大于等于:<![CDATA[  >=  ]]>

一些特殊字符也可用下面的替代符号所代替。

 特殊字符   替代符号

     &            &amp;

     <            &lt;

     >            &gt;

     "             &quot;

     ‘              &apos;

 

例:

 

<select id="selectPaymentOrder" parameterType="com.shenxin.basis.basismag.entity.PaymentOrderInfoDO"
  resultType="com.shenxin.basis.basismag.entity.PaymentOrderInfoDO">
    select t0.payment_order_code paymentOrderCode,
       t0.BUSINESS_CODE      userName,
       ‘‘                    userPhone,
       t0.payment_channel    paymentChannel,
       t4.type_code          typeCode,
       t4.type_name          typeName,
       t0.item_code          itemCode,
       ‘光大‘                 proOrg,
       t1.item_name          itemName,
       t0.order_amount       orderAmount,
       t0.order_status       orderStatus,
       t2.order_status       sendOrderStatus,
       t0.create_date        createDate,
       t0.update_date        updateDate,
       t0.payment_Channel_Code transId,
       ‘1‘                   channelId
  from pfb_payment_order_info t0
       left join pfb_item_info t1 on t0.item_code=t1.item_code
       left join PFB_CHARGEOFF_ORDER_INFO t2 on t0.payment_order_code=t2.payment_order_code
       left join pfb_item_info t3 
            left join pfb_item_type t4 on t3.trade_type=t4.type_code
       on t3.item_code=t0.item_code
  where 1=1
<if test="userName != null and userName != ‘‘"> AND t0.BUSINESS_CODE like ‘%‘||#{userName}||‘%‘ </if>
<if test="paymentOrderCode != null and paymentOrderCode != ‘‘"> AND t0.payment_order_code like ‘%‘||#{paymentOrderCode}||‘%‘ </if>
<if test="orderStatus != null and orderStatus != ‘‘"> AND t0.order_status=#{orderStatus} </if>
<if test="typeCode != null and typeCode != ‘‘"> AND t4.type_code=#{typeCode} </if>
<if test="startTime != null and startTime != ‘‘"> AND  to_char(to_date(t0.create_date,‘yyyy-mm-dd,hh24:mi:ss‘),‘yyyymmdd‘)>#{startTime} </if>
<if test="endTime != null and endTime != ‘‘"> AND  to_char(to_date(t0.create_date,‘yyyy-mm-dd,hh24:mi:ss‘),‘yyyymmdd‘)<![CDATA[<]]>#{endTime} </if>
  </select>

以上是关于Mybatis特殊字符处理的主要内容,如果未能解决你的问题,请参考以下文章

Mybatis特殊字符处理

mybatis-xml特殊字符处理

MyBatis中特殊符号的转义

MyBatis定制SQL集中特殊的处理方式

MyBatis特殊字符转义

mybatis if判断中的特殊符号