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 相关文章推荐
JavaGUI模仿QQ聊天功能完整版
Jul 04 Java/Android
详解Java七大阻塞队列之SynchronousQueue
Sep 04 Java/Android
Spring Security中用JWT退出登录时遇到的坑
Oct 16 Java/Android
聊聊Lombok中的@Builder注解使用教程
Nov 17 Java/Android
Android基于Fresco实现圆角和圆形图片
Apr 01 Java/Android
零基础学java之方法的定义与调用详解
Apr 10 Java/Android
SpringCloud项目如何解决log4j2漏洞
Apr 10 Java/Android
利用正则表达式匹配浮点型数据
May 30 Java/Android
Android Canvas绘制文字横纵向对齐
Jun 05 Java/Android
Android开发EditText禁止输入监听及InputFilter字符过滤
Jun 10 Java/Android
springboot创建的web项目整合Quartz框架的项目实践
Jun 21 Java/Android
SpringBoot详解整合Redis缓存方法
Jul 15 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中使用socket方式GET、POST数据实例
2015/04/02 PHP
yii框架无限极分类的实现方法
2017/04/08 PHP
PHP编程计算日期间隔天数的方法
2017/04/26 PHP
laravel 数据迁移与 Eloquent ORM的实现方法
2019/04/12 PHP
phpstorm激活码2020附使用详细教程
2020/09/25 PHP
js CSS操作方法集合
2008/10/31 Javascript
推荐40款强大的 jQuery 导航插件和教程(上篇)
2012/09/14 Javascript
JavaScript实现动画打开半透明提示层的方法
2015/04/21 Javascript
js 转json格式的字符串为对象或数组(前后台)的方法
2016/11/02 Javascript
JS中闭包的经典用法小结(2则示例)
2016/12/28 Javascript
解决使用vue.js路由后失效的问题
2018/03/17 Javascript
微信小程序使用gitee进行版本管理
2018/09/20 Javascript
JS猜数字游戏实例讲解
2020/06/30 Javascript
解决vue单页面应用进入页面加载所有 js 的问题
2020/08/12 Javascript
使用Node.js和Socket.IO扩展Django的实时处理功能
2015/04/20 Python
Python实现求最大公约数及判断素数的方法
2015/05/26 Python
Python实现控制台进度条功能
2016/01/04 Python
Python 自动化表单提交实例代码
2017/06/08 Python
Python实现发送与接收邮件的方法详解
2018/03/28 Python
Python 利用切片从列表中取出一部分使用的方法
2019/02/01 Python
python的faker库用法
2019/11/28 Python
python中常用的数据结构介绍
2021/01/12 Python
基于pycharm 项目和项目文件命名规则的介绍
2021/01/15 Python
python 实现网易邮箱邮件阅读和删除的辅助小脚本
2021/03/01 Python
CSS3实现各种图形的示例代码
2016/10/19 HTML / CSS
html5 canvas 画图教程案例分析
2012/11/23 HTML / CSS
详解HTML5 data-* 自定义属性
2018/01/24 HTML / CSS
HTML5中input输入框默认提示文字向左向右移动的示例代码
2020/09/10 HTML / CSS
Yahoo-PHP面试题1
2016/07/20 面试题
Java程序员常见面试题
2015/07/16 面试题
竞选团支书演讲稿
2014/04/28 职场文书
医院节能减排方案
2014/06/13 职场文书
班级光棍节联谊会策划书
2014/10/10 职场文书
信访维稳承诺书
2015/05/04 职场文书
公务员处分决定书
2015/06/25 职场文书
面试提问mysql一张表到底能存多少数据
2022/03/13 MySQL