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 相关文章推荐
Java各种比较对象的方式的对比总结
Jun 20 Java/Android
Java如何实现树的同构?
Jun 22 Java/Android
Spring Boot 实现敏感词及特殊字符过滤处理
Jun 29 Java/Android
Java基础之线程锁相关知识总结
Jun 30 Java/Android
java调用Restful接口的三种方法
Aug 23 Java/Android
Java 在生活中的 10 大应用
Nov 02 Java/Android
Java8 Stream API 提供了一种高效且易于使用的处理数据的方式
Apr 13 Java/Android
Java版 简易五子棋小游戏
May 04 Java/Android
Java 多线程协作作业之信号同步
May 11 Java/Android
Android开发手册自定义Switch开关按钮控件
Jun 10 Java/Android
Java完整实现记事本代码
Jun 16 Java/Android
Mybatis 一级缓存和二级缓存原理区别
Sep 23 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实现mysql数据库备份类
2008/03/20 PHP
Joomla下利用configuration.php存储简单数据
2010/05/19 PHP
PHP Curl出现403错误的解决办法
2014/05/29 PHP
CI框架入门示例之数据库取数据完整实现方法
2014/11/05 PHP
Javascript学习笔记7 原型链的原理
2010/01/11 Javascript
IE6/7/8/9不支持exec的简写方式
2011/05/25 Javascript
JavaScript中的常见问题解决方法(乱码,IE缓存,代理)
2013/11/28 Javascript
angularjs中的单元测试实例
2014/12/06 Javascript
jquery实现页面关键词高亮显示的方法
2015/03/12 Javascript
jQuery插件Elastislide实现响应式的焦点图无缝滚动切换特效
2015/04/12 Javascript
浅析jQuery 遍历函数,javascript中的each遍历
2016/05/25 Javascript
jQuery实现checkbox的简单操作
2017/11/18 jQuery
为什么说JavaScript预解释是一种毫无节操的机制详析
2018/11/18 Javascript
JavaScript封装单向链表的示例代码
2020/09/17 Javascript
vue+iview分页组件的封装
2020/11/17 Vue.js
vue中如何自定义右键菜单详解
2020/12/08 Vue.js
[01:10]为家乡而战!完美世界城市挑战赛全国总决赛花絮
2019/07/25 DOTA
Python多进程同步Lock、Semaphore、Event实例
2014/11/21 Python
python实现在每个独立进程中运行一个函数的方法
2015/04/23 Python
python实现感知器算法详解
2017/12/19 Python
Python使用Shelve保存对象方法总结
2019/01/28 Python
python多线程下信号处理程序示例
2019/05/31 Python
python opencv 读取图片 返回图片某像素点的b,g,r值的实现方法
2019/07/03 Python
Python实现微信翻译机器人的方法
2019/08/13 Python
python分别打包出32位和64位应用程序
2020/02/18 Python
利用python查看数组中的所有元素是否相同
2021/01/08 Python
精致的手工皮鞋:Shoe Embassy
2019/11/08 全球购物
PyQt QMainWindow的使用示例
2021/03/24 Python
高中生自我评价个人范文
2013/11/09 职场文书
干部行政关系介绍信
2014/01/17 职场文书
《庐山的云雾》教学反思
2014/04/22 职场文书
法制教育演讲稿
2014/09/10 职场文书
确保工程质量承诺书
2015/04/29 职场文书
2015中秋节晚会主持词
2015/07/01 职场文书
HTML+css盒子模型案例(圆,半圆等)“border-radius” 简单易上手
2021/05/10 HTML / CSS
改造DE1103三步曲
2022/04/07 无线电