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内存模型之happens-before概念详解
Jun 13 Java/Android
Java常用工具类汇总 附示例代码
Jun 26 Java/Android
Java基础之详解HashSet的使用方法
Jun 30 Java/Android
SpringBoot+Vue+JWT的前后端分离登录认证详细步骤
Sep 25 Java/Android
SpringBoot整合阿里云视频点播的过程详解
Dec 06 Java/Android
Java 关于String字符串原理上的问题
Apr 07 Java/Android
java中为什么说子类的构造方法默认访问的是父类的无参构造方法
Apr 13 Java/Android
Java由浅入深通关抽象类与接口(下篇)
Apr 26 Java/Android
Java 定时任务技术趋势简介
May 04 Java/Android
Android Studio实现简易进制转换计算器
May 20 Java/Android
springboot集成redis存对象乱码的问题及解决
Jun 16 Java/Android
java获取一个文本文件的编码(格式)信息
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 5.3.x 的strtotime() 时区设定 警告信息修复
2013/08/05 PHP
PHP常用的排序和查找算法
2015/08/06 PHP
php mysql procedure实现获取多个结果集的方法【基于thinkPHP】
2016/11/09 PHP
浅谈PHP的反射API
2017/02/26 PHP
js 文本滚动效果的实例代码
2013/08/17 Javascript
深入理解JavaScript是如何实现继承的
2013/12/12 Javascript
JavaScript代码复用模式详解
2014/11/07 Javascript
jQuery插件pagination实现分页特效
2015/04/12 Javascript
WEB开发之注册页面验证码倒计时代码的实现
2016/12/15 Javascript
react 父组件与子组件之间的值传递的方法
2017/09/14 Javascript
JS实现碰撞检测的方法分析
2018/01/19 Javascript
小程序开发基础之view视图容器
2018/08/21 Javascript
JS实现可视化文件上传
2018/09/08 Javascript
微信小程序使用gitee进行版本管理
2018/09/20 Javascript
Vue 实现一个命令式弹窗组件功能
2019/09/25 Javascript
js实现上下左右键盘控制div移动
2020/01/16 Javascript
Vue简单封装axios之解决post请求后端接收不到参数问题
2020/02/16 Javascript
JavaScript用document.write()输出换行的示例代码
2020/11/26 Javascript
[04:09]2014DOTA2国际邀请赛Ti西雅图 历届冠军相继出局 BBC综述今日比赛
2014/07/20 DOTA
python计算N天之后日期的方法
2015/03/31 Python
Python 文件管理实例详解
2015/11/10 Python
对numpy中shape的深入理解
2018/06/15 Python
Python学习笔记基本数据结构之序列类型list tuple range用法分析
2019/06/08 Python
在Python中表示一个对象的方法
2019/06/25 Python
PyQt5基本控件使用之消息弹出、用户输入、文件对话框的使用方法
2019/08/06 Python
使用pyecharts生成Echarts网页的实例
2019/08/12 Python
使用Python解析Chrome浏览器书签的示例
2020/11/13 Python
初探CSS3中的calc()功能
2015/07/14 HTML / CSS
军校制空专业毕业生自我鉴定
2013/11/16 职场文书
美容师的职业规划书
2013/12/27 职场文书
完美的中文自荐信
2014/05/24 职场文书
中央空调节能方案
2014/06/15 职场文书
2015年医院工作总结范文
2015/04/09 职场文书
python实现自动化群控的步骤
2021/04/11 Python
Pytorch实现图像识别之数字识别(附详细注释)
2021/05/11 Python
Axios取消重复请求的方法实例详解
2021/06/15 Javascript