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 23 Java/Android
Sleuth+logback 设置traceid 及自定义信息方式
Jul 26 Java/Android
SpringDataJPA在Entity中常用的注解介绍
Dec 06 Java/Android
深入浅出讲解Java8函数式编程
Jan 18 Java/Android
Spring依赖注入多种类型数据的示例代码
Mar 31 Java/Android
Java 超详细讲解hashCode方法
Apr 07 Java/Android
解决springboot druid数据库连接失败后一直重连的方法
Apr 19 Java/Android
springboot读取nacos配置文件
May 20 Java/Android
使用Postman测试需要授权的接口问题
Jun 21 Java/Android
Java实现超大Excel文件解析(XSSF,SXSSF,easyExcel)
Jul 15 Java/Android
app场景下uniapp的扫码记录
Jul 23 Java/Android
基于Android10渲染Surface的创建过程
Aug 14 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
改德生G88 - 加装等响度低音提升电路
2021/03/02 无线电
PHP中Session可能会引起并发问题
2015/06/26 PHP
PHP自定义序列化接口Serializable用法分析
2017/12/29 PHP
ThinkPHP实现的rsa非对称加密类示例
2018/05/29 PHP
几个常用的JavaScript字符串处理函数 - split()、join()、substring()和indexOf()
2009/06/02 Javascript
jquery中的$(document).ready()与window.onload的区别
2009/11/18 Javascript
一些经常会用到的Javascript检测函数
2010/05/31 Javascript
jquery插件之easing使用
2010/08/19 Javascript
基于node.js的快速开发透明代理
2010/12/25 Javascript
js对字符的验证方法汇总
2015/02/04 Javascript
jquery中ajax处理跨域的三大方式
2016/01/05 Javascript
js 创建对象 经典模式全面了解
2016/08/16 Javascript
jQuery旋转插件jqueryrotate用法详解
2016/10/13 Javascript
vue2.0在没有dev-server.js下的本地数据配置方法
2018/02/23 Javascript
vue中使用[provide/inject]实现页面reload的方法
2019/09/30 Javascript
jQuery 常用特效实例小结【显示与隐藏、淡入淡出、滑动、动画等】
2020/05/19 jQuery
Python中的高级函数map/reduce使用实例
2015/04/13 Python
Python设计模式之工厂模式简单示例
2018/01/09 Python
基于python 爬虫爬到含空格的url的处理方法
2018/05/11 Python
python实现祝福弹窗效果
2019/04/07 Python
django使用admin站点上传图片的实例
2019/07/28 Python
pygame实现俄罗斯方块游戏(基础篇2)
2019/10/29 Python
Python测试线程应用程序过程解析
2019/12/31 Python
python爬虫scrapy基本使用超详细教程
2021/02/20 Python
css3让div随鼠标移动而抖动起来
2014/02/10 HTML / CSS
HTML5新表单元素_动力节点Java学院整理
2017/07/12 HTML / CSS
使用CSS实现弹性视频html5案例实践
2012/12/26 HTML / CSS
在HTML5中使用MathML数学公式的简单讲解
2016/02/19 HTML / CSS
简历中自我评价分享
2013/10/09 职场文书
师范生个人推荐信
2013/11/29 职场文书
创业计划书六个要素
2013/12/26 职场文书
建筑公司员工自我鉴定
2014/04/08 职场文书
民主评议党员总结
2014/10/20 职场文书
公司辞职信模板
2015/05/13 职场文书
python实战之一步一步教你绘制小猪佩奇
2021/04/22 Python
SpringBoot项目多数据源及mybatis 驼峰失效的问题解决方法
2022/07/07 Java/Android