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>

时间: 2024-11-02 13:14:42

Mybatis特殊字符处理的相关文章

MyBatis特殊字符转义

使用mybatis的时候,特殊字符,例如<,>,<>,..... 需使用以下进行转义 < < 小于号 > > 大于号 & & 与 &apos; ' 单引号 " " 双引号 <select id="selectByExampleExt" parameterType="com.cn21.redisCluster.model.AppInfoExampleExt" result

mybatis 模糊查询特殊字符的处理

/** * 把模糊查询的检索的关键字对特殊字符进行转换如"["."%" * @param str * 需要转换的字符串 * @return 返回模糊查询的字符串 */ public static String ToLikeStr(String str) { if(str != null && str.length()>0) { str =str.trim().replace("\\", "\\\\%").

MyBatis Plus之like模糊查询中包含有特殊字符(_、\、%)

传统的解决思路:自定义一个拦截器,当有模糊查询时,模糊查询的关键字中包含有上述特殊字符时,在该特殊字符前添加\进行转义处理. 新的解决思路:将like 替换为 MySQL内置函数locate函数 一.问题提出 使用MyBatis中的模糊查询时,当查询关键字中包括有_.\.%时,查询关键字失效. 二.问题分析 1.当like中包含_时,查询仍为全部,即 like '%_%'查询出来的结果与like '%%'一致,并不能查询出实际字段中包含有_特殊字符的结果条目2.like中包括%时,与1中相同3.

mybatis xml中特殊字符处理

1,CDATA区: 它的全称为character data,以"<![CDATA[ "开始,以" ]]>" 结束,在两者之间嵌入不想被解析程序解析的原始数据,解析器不对CDATA区中的内容进行解析,而是将这些数据原封不动地交给下游程序处理. 2,特殊字符 : xml 中表示:   <= 小于等于.    >= 大于等于 需加  这样的标记:     <![CDATA[   ]]>      xml中有&的符号,需要 <

MyBatis笔记03

1.动态sql 01.if:单独使用if,后面必须有where 1=1 代码:<!-- 需要注意的事项:01. 在xml文件中 特殊字符的使用 &&必须换成 and或者 & < < > > <= <= >= >= ' &apos;" " 02.因为不确定用户输入的到底是哪个参数 所以 where 之后必须加上 1=1 而且 每个条件之前加上 and --> <select id="

Mybatis逆向生成

在已经有了数据库的表的时候,为了方便起见,我们可以逆向生成javabean,xml,dao接口等,当然,下载mybaits-generation的工具,我这里用的是eclipse插件,然后准备一 个xml文件,下面给出xml文件写法 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBa

EXTjs+SpringMVC+Mybatis实现照片的上传,下载,查看关键技术整理

第一个问题:如何通过Extjs4实现照片上传的布局展示以及本地照片选择后的在一个区域内进行图片预览 实现照片上传的布局展示: items : [ { xtype : 'box', itemId : 'imageShow', id:'imageShow', border : 1, style : { borderColor : '#99bbe8', borderStyle : 'solid', }, margin : '0 0 5 55', autoEl : { width : 105, heig

MyBatis详解

本文用例下载地址 http://files.cnblogs.com/files/gaofei-1/MyBatisDemo.rar 本文使用的是MySQL数据库,所需SQL脚本如下 1 CREATE DATABASE demo; 2 USE demo; 3 CREATE TABLE `user`( 4 `id` INT PRIMARY KEY AUTO_INCREMENT COMMENT '编号', 5 `name` VARCHAR(20) NOT NULL COMMENT '名称', 6 `pa

mybatis if判断中的特殊符号

在使用mybatis 时我们sql是写在xml 映射文件中,如果写的sql中有一些特殊的字符的话,在解析xml文件的时候会被转义,但我们不希望他被转义,所以我们要使用<![CDATA[ ]]>来解决. <![CDATA[   ]]> 是什么,这是XML语法.在CDATA内部的所有内容都会被解析器忽略. 如果文本包含了很多的"<"字符 <=和"&"字符--就象程序代码一样,那么最好把他们都放到CDATA部件中. 但是有个问题