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


Posted in Java/Android onJune 30, 2021

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>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Java/Android 相关文章推荐
分析Netty直接内存原理及应用
Jun 14 Java/Android
解析Java异步之call future
Jun 14 Java/Android
SpringCloud Alibaba项目实战之nacos-server服务搭建过程
Jun 21 Java/Android
Java基础之详解HashSet的使用方法
Jun 30 Java/Android
java设计模式--原型模式详解
Jul 21 Java/Android
Java org.w3c.dom.Document 类方法引用报错
Aug 07 Java/Android
SpringBoot+Vue+JWT的前后端分离登录认证详细步骤
Sep 25 Java/Android
Java使用JMeter进行高并发测试
Nov 23 Java/Android
InterProcessMutex实现zookeeper分布式锁原理
Mar 21 Java/Android
引用计数法和root搜索算法以及JVM中判定对象需要回收的方法
Apr 19 Java/Android
Spring Data JPA框架Repository自定义实现
Apr 28 Java/Android
Java Spring读取和存储详细操作
Aug 05 Java/Android
总结Java对象被序列化的两种方法
Jun 30 #Java/Android
实体类或对象序列化时,忽略为空属性的操作
Jun 30 #Java/Android
Spring mvc是如何实现与数据库的前后端的连接操作的?
Jun 30 #Java/Android
HashMap实现保存两个key相同的数据
Jun 30 #Java/Android
spring boot项目application.properties文件存放及使用介绍
springboot项目以jar包运行的操作方法
Springboot使用Spring Data JPA实现数据库操作
Jun 30 #Java/Android
You might like
php与php MySQL 之间的关系
2009/07/17 PHP
PHP实现页面静态化的超简单方法
2016/09/06 PHP
基于逻辑运算的简单权限系统(实现) JS 版
2007/03/24 Javascript
JQuery从头学起第一讲
2010/07/04 Javascript
基于jquery的动态创建表格的插件
2011/04/05 Javascript
JavaScript 参数中的数组展开 [译]
2012/09/21 Javascript
深入理解JS中的变量及作用域、undefined与null
2014/03/04 Javascript
jquery使用jxl插件导出excel示例
2014/04/14 Javascript
常用的jQuery前端技巧收集
2014/12/24 Javascript
JavaScript中的对象序列化介绍
2014/12/30 Javascript
jQuery实现提示密码强度的代码
2015/07/15 Javascript
基于JavaScript操作DOM常用的API小结
2015/12/01 Javascript
jQuery中each()、find()和filter()等节点操作方法详解(推荐)
2016/05/25 Javascript
JavaScript_ECMA5数组新特性详解
2016/06/12 Javascript
javascript定时器取消定时器及优化方法
2017/07/08 Javascript
老生常谈javascript的面向对象思想
2017/08/22 Javascript
Express进阶之log4js实用入门指南
2018/02/10 Javascript
深入浅析nuxt.js基于ssh的vue通用框架
2019/05/21 Javascript
解决vue项目刷新后,导航菜单高亮显示的位置不对问题
2019/11/01 Javascript
three.js利用卷积法如何实现物体描边效果
2019/11/27 Javascript
jQuery实现获取多选框的值示例
2020/02/07 jQuery
Windows系统配置python脚本开机启动的3种方法分享
2015/03/10 Python
Python多线程编程(五):死锁的形成
2015/04/05 Python
在windows下快速搭建web.py开发框架方法
2016/04/22 Python
利用python对excel中一列的时间数据更改格式操作
2020/07/14 Python
QT5 Designer 打不开的问题及解决方法
2020/08/20 Python
python函数超时自动退出的实操方法
2020/12/28 Python
Pycharm在指定目录下生成文件和删除文件的实现
2020/12/28 Python
Bandier官网:奢侈、时尚前卫的健身服装首选目的地
2020/07/05 全球购物
电子信息工程自荐信
2014/05/26 职场文书
劳动竞赛口号
2014/06/16 职场文书
党员教师批评与自我批评发言稿
2014/10/15 职场文书
雨花台导游词
2015/02/06 职场文书
暖春观后感
2015/06/08 职场文书
spring cloud 配置中心native配置方式
2021/09/25 Java/Android
MySQL优化常用的19种有效方法(推荐!)
2022/03/17 MySQL