mybatis中sql语句CDATA标签的用法说明

 更新时间:2021年06月30日 14:33:13   作者:Bee.F  
这篇文章主要介绍了mybatis中sql语句CDATA标签的用法说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

sql语句CDATA标签的用法

CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data)。

在 XML 元素中,"<" 和 “&” 是非法的;

“<” 会产生错误,因为解析器会把该字符解释为新元素的开始;

“&” 也会产生错误,因为解析器会把该字符解释为字符实体的开始;

在mapper文件中写sql语句时,遇到特殊字符时,如:"<" 等,建议使用 <![CDATA[ sql语句 ]]> 标记,将sql语句包裹住,不被解析器解析;

例如:【伪代码】

select id from t_article where create_time <![CDATA[ <= ]]> now();

使用CDATA[ ]标签进行范围查询

在项目中使用mybatis时的SQL语句是写在xml映射文件中的,如果想要通过大于小于或者大于等于小于等于查询符合范围的数据,但是若写入的SQL语句有一些类似>,<的特殊字符的话,在解析xml文件的时候会被转义,但这并不是我们所希望的,所以这个时候可以使用<![CDATA[]]>标签来解决。

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

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

实例:

<select id="findList" resultType="FleeceRecord">
        SELECT * FROM `fleece_record`
        <where>
<if test="naturalLengthStart != null">
                and natural_length<![CDATA[>=]]>#{naturalLengthStart}
            </if>
            <if test="naturalLengthEnd != null">
                and natural_length<![CDATA[<=]]>#{naturalLengthEnd}
            </if>
         </where>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • mybatis抽取基类BaseMapper增删改查的实现

    mybatis抽取基类BaseMapper增删改查的实现

    目前项目当中使用mapper.xml文件方式对数据库进行操作,但是每个里边都有增/删/改/查,为了方便开发,把这些公共的代码提取出来,不用当做基类,不用每个Mapper文件都写了,本文就详细的介绍一下实现方法
    2021-09-09
  • 详解springcloud组件consul服务治理

    详解springcloud组件consul服务治理

    Consul是一款由HashiCorp公司开源的,用于服务治理的软件,Spring Cloud Consul对其进行了封装,这篇文章主要介绍了springcloud组件consul服务治理,需要的朋友可以参考下
    2022-08-08
  • springboot实现用户名查找用户功能

    springboot实现用户名查找用户功能

    本文主要介绍了springboot实现用户名查找用户功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • SpringBoot3各种配置的优先级对比小结

    SpringBoot3各种配置的优先级对比小结

    SpringBoot3提供了多种配置来源以满足不同场景下的需求,本文详细介绍了SpringBoot3中的配置优先级对比小结,具有一定的参考价值,感兴趣的可以了解一下
    2024-12-12
  • 如何基于Autowired对构造函数进行注释

    如何基于Autowired对构造函数进行注释

    这篇文章主要介绍了如何基于Autowired对构造函数进行注释,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • Java各种比较对象的方式的对比总结

    Java各种比较对象的方式的对比总结

    比较对象是面向对象编程语言的一个基本特征.在本教程中,我们将介绍Java语言的一些特性,这些特性允许我们比较对象.此外,我们还将研究外部库中的这些特性,需要的朋友可以参考下
    2021-06-06
  • java外部类与内部类简介

    java外部类与内部类简介

    这篇文章简单介绍了java外部类与内部类,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-12-12
  • Mybatis-Plus逻辑删除的用法详解

    Mybatis-Plus逻辑删除的用法详解

    这篇文章主要为大家详细介绍了Mybatis-Plus 逻辑删除的用法,文中有详细的代码示例,对我们的学习或工作有一定的帮助,需要的朋友可以参考下
    2023-07-07
  • Java Socket编程服务器响应客户端实例代码

    Java Socket编程服务器响应客户端实例代码

    这篇文章主要介绍了Java Socket编程服务器响应客户端实例代码,具有一定借鉴价值,需要的朋友可以参考下
    2017-12-12
  • SpringCloud使用AOP统一处理Web请求日志实现步骤

    SpringCloud使用AOP统一处理Web请求日志实现步骤

    这篇文章主要为大家介绍了SpringCloud使用AOP统一处理Web请求日志实现步骤,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08

最新评论