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 26 Java/Android
Java中使用Filter过滤器的方法
Jun 28 Java/Android
spring cloud gateway中如何读取请求参数
Jul 15 Java/Android
聊聊Lombok中的@Builder注解使用教程
Nov 17 Java/Android
java代码实现空间切割
Jan 18 Java/Android
JavaWeb实现显示mysql数据库数据
Mar 19 Java/Android
Java Spring Boot 正确读取配置文件中的属性的值
Apr 20 Java/Android
Mybatis-Plus 使用 @TableField 自动填充日期
Apr 26 Java/Android
带你了解Java中的ForkJoin
Apr 28 Java/Android
SpringCloud中分析讲解Feign组件添加请求头有哪些坑梳理
Jun 21 Java/Android
Java实现超大Excel文件解析(XSSF,SXSSF,easyExcel)
Jul 15 Java/Android
Spring Boot优化后启动速度快到飞起技巧示例
Jul 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
火车头discuz6.1 完美采集的php接口文件
2009/09/13 PHP
PHP开发的一些注意点总结
2010/10/12 PHP
php实现水仙花数的4个示例分享
2014/04/08 PHP
PHP实现生成唯一编号(36进制的不重复编号)
2014/07/01 PHP
php通过分类列表产生分类树数组的方法
2015/04/20 PHP
巧妙破除网页右键禁用的十大绝招
2006/08/12 Javascript
IE浏览器PNG图片透明效果代码
2008/09/02 Javascript
jQuery 处理网页内容的实现代码
2010/02/15 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之三
2012/01/03 Javascript
javascript五图轮播切换实用版
2012/08/17 Javascript
JS解决url传值出现中文乱码的另类办法
2013/04/08 Javascript
jQuery中ajax的get()方法用法实例
2014/12/26 Javascript
JS获取网页图片name属性的方法
2015/04/01 Javascript
解析预加载显示图片艺术
2016/12/05 Javascript
Vue2.0利用vue-resource上传文件到七牛的实例代码
2017/07/28 Javascript
vue与django集成打包的实现方法
2019/11/11 Javascript
python k-近邻算法实例分享
2014/06/11 Python
Python简单日志处理类分享
2015/02/14 Python
python发送邮件功能实现代码
2016/07/15 Python
python不换行之end=与逗号的意思及用途
2017/11/21 Python
tensorflow1.0学习之模型的保存与恢复(Saver)
2018/04/23 Python
利用python脚本如何简化jar操作命令
2019/02/24 Python
Ubuntu18.04下python版本完美切换的解决方法
2019/06/14 Python
Python函数的定义方式与函数参数问题实例分析
2019/12/26 Python
pytorch 实现查看网络中的参数
2020/01/06 Python
CSS3动画:5种预载动画效果实例
2017/04/05 HTML / CSS
美国一家全面的在线零售鞋类公司:SHOEBACCA
2017/01/06 全球购物
英国最大的手表网站:The Watch Hut
2017/03/31 全球购物
彪马英国官网:PUMA英国
2019/02/11 全球购物
土建专业大学生自荐信范文
2014/04/09 职场文书
小学绿色学校申报材料
2014/08/23 职场文书
交通事故协议书范本
2014/11/18 职场文书
中标通知书范本
2015/04/17 职场文书
入党申请书怎么写?
2019/06/21 职场文书
小学生优秀作文范文(六篇)
2019/07/10 职场文书
浅谈MySQL user权限表
2021/06/18 MySQL