mybatis中的CDATA

在使用mybatis 时我们sql是写在xml 映射文件中,如果写的sql中有一些特殊的字符的话,在解析xml文件的时候会被转义,但我们不希望他被转义,所以我们要使用<![CDATA[ ]]>来解决。

<![CDATA[   ]]> 是什么,这是XML语法。在CDATA内部的所有内容都会被解析器忽略。

如果文本包含了很多的"<"字符 <=和"&"字符——就象程序代码一样,那么最好把他们都放到CDATA部件中。

但是有个问题那就是 <if test="">   </if>   <where>   </where>  <choose>  </choose>  <trim>  </trim> 等这些标签都不会被解析,所以我们只把有特殊字符的语句放在 <![CDATA[   ]]>  尽量缩小 <![CDATA[  ]]> 的范围。

实例如下:

[java] view plain copy

print?

  1. <select id="allUserInfo" parameterType="java.util.HashMap" resultMap="userInfo1">
  2. <![CDATA[
  3. SELECT newsEdit,newsId, newstitle FROM shoppingGuide  WHERE 1=1  AND  newsday > #{startTime} AND newsday <= #{endTime}
  4. ]]>
  5. <if test="etidName!=‘‘">
  6. AND newsEdit=#{etidName}
  7. </if>
  8. </select>

因为这里有 ">"  "<=" 特殊字符所以要使用 <![CDATA[   ]]> 来注释,但是有<if> 标签,所以把<if>等 放外面

时间: 2024-10-11 04:37:58

mybatis中的CDATA的相关文章

Mybatis 中的&lt;![CDATA[ ]]&gt;浅析

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

mybatis 中的&lt;![CDATA[ ]]&gt;

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

Mybatis中的CDATA标签的用法

术语 CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data). 在 XML 元素中,"<" 和 "&" 是非法的. "<" 会产生错误,因为解析器会把该字符解释为新元素的开始. "&" 也会产生错误,因为解析器会把该字符解释为字符实体的开始. 某些文本,比如 JavaScript 代码,包含大量 "<" 或 "

Mybatis中的CDATA标签

术语 CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data). 在 XML 元素中,"<" 和 "&" 是非法的. "<" 会产生错误,因为解析器会把该字符解释为新元素的开始. "&" 也会产生错误,因为解析器会把该字符解释为字符实体的开始. 某些文本,比如 JavaScript 代码,包含大量 "<" 或 "

mybatis 中#与$的区别

MyBatis/Ibatis中#和$的区别 1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号.如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by "111", 如果传入的值是id,则解析成的sql为order by "id". 2. $将传入的数据直接显示生成在sql中.如:order by $user_id$,如果传入的值是111,那么解析成sql时的值为order by user_id,

Mybatis 中的转义字符

记录以下mybatis中的转义字符,方便以后自己看一下 Mybatis转义字符表 < < 小于 > > 大于 & & 与 &apos; ' 单引号 " " 双引号 需要注意的是分号是必不可少的. 比如 a > b 我们就写成  a > b 当然啦, 我们也可以用另外一种,就是<![CDATA[ ]]>符号. 在mybatis中这种符号将不会解析. 比如 <![CDATA[ when min(starttime

mybatis 中 #与$ 的区别?

#表示的是使用了预编译,可以防止sql注入.而$则不是. 使用#将传入的参数默认为字符串.而$则不会,传入的是什么就是什么. $一般用于传入数据库对象,例如表名. 如果传入的是Date类型,则要用#. ps:在使用mybatis中还遇到<![CDATA[]]>的用法,在该符号内的语句,将不会被当成字符串来处理,而是直接当成sql语句,比如要执行一个存储过程.

mybatis中添加时间字符串条件

<if test="operatorDateStart != null and operatorDateStart !='' " >operator_date >= #{operatorDateStart,jdbcType=VARCHAR}</if><if test="operatorDateEnd != null and operatorDateEnd !='' " ><![CDATA[and operator_da

【新】mybatis中大于等于小于等于的两种常用写法

mybatis中大于等于小于等于的写法 原符号 < <= > >= & ' " 替换符号 < <= > >= & &apos; " 示例sql如下: create_date_time >= #{startTime} and create_date_time <= #{endTime} 第二种写法 大于等于 <![CDATA[ >= ]]> 小于等于 <![CDATA[ <=