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 相关文章推荐
解决Maven项目中 Invalid bound statement 无效的绑定问题
Jun 15 Java/Android
浅谈spring boot使用thymeleaf版本的问题
Aug 04 Java/Android
mybatis源码解读之executor包语句处理功能
Feb 15 Java/Android
使用HttpSessionListener监听器实战
Mar 17 Java/Android
SpringBoot2零基础到精通之数据与页面响应
Mar 22 Java/Android
springboot应用服务启动事件的监听实现
Apr 06 Java/Android
Android Flutter实现3D动画效果示例详解
Apr 07 Java/Android
Java虚拟机内存结构及编码实战分享
Apr 07 Java/Android
Java Spring Boot 正确读取配置文件中的属性的值
Apr 20 Java/Android
Java线程的6种状态与生命周期
May 11 Java/Android
Java实现简单小画板
Jun 10 Java/Android
SpringBoot使用AOP实现统计全局接口访问次数详解
Jun 16 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
xml+php动态载入与分页
2006/10/09 PHP
PHP计算加权平均数的方法
2015/07/16 PHP
php上传功能集后缀名判断和随机命名(强力推荐)
2015/09/10 PHP
Yii2使用自带的UploadedFile实现的文件上传
2016/06/20 PHP
php编程实现简单的网页版计算器功能示例
2017/04/26 PHP
IE php关于强制下载文件的代码
2008/08/23 Javascript
jquery.Jwin.js 基于jquery的弹出层插件代码
2012/05/23 Javascript
js模拟滚动条(横向竖向)
2013/02/22 Javascript
一款由jquery实现的整屏切换特效
2014/09/15 Javascript
JavaScript中exec函数用法实例分析
2015/06/08 Javascript
jQuery实现链接的title快速出现的方法
2017/02/20 Javascript
VUE中使用Vue-resource完成交互
2017/07/21 Javascript
详解Vue2 SSR 缓存 Api 数据
2017/11/20 Javascript
原生JS写Ajax的请求函数功能
2017/12/22 Javascript
详解JS转换数值函数Number()、parseInt()、parseFloat()
2018/08/24 Javascript
基于Vue-Cli 打包自动生成/抽离相关配置文件的实现方法
2018/12/09 Javascript
JS执行控制之节流模式实例分析
2018/12/21 Javascript
jQuery中each和js中forEach的区别分析
2019/02/27 jQuery
Vue.js中该如何自己维护路由跳转记录
2019/05/19 Javascript
[01:12](回顾)DOTA2国际邀请赛,全世界DOTAer的盛宴
2014/07/01 DOTA
从零学python系列之数据处理编程实例(二)
2014/05/22 Python
Python 异常处理的实例详解
2017/09/11 Python
Python 将RGB图像转换为Pytho灰度图像的实例
2017/11/14 Python
Python实现的多叉树寻找最短路径算法示例
2018/07/30 Python
pycharm 在windows上编辑代码用linux执行配置的方法
2018/10/27 Python
基于Python下载网络图片方法汇总代码实例
2020/06/24 Python
HTML5新标签兼容——&gt; 的两种方法
2018/09/12 HTML / CSS
北京颐和园导游词
2015/01/30 职场文书
行政主管岗位职责
2015/02/03 职场文书
2015年银行工作总结范文
2015/04/01 职场文书
校园广播稿范文
2015/08/19 职场文书
2016大学生社会实践单位评语
2015/12/01 职场文书
go xorm框架的使用
2021/05/22 Golang
Python还能这么玩之只用30行代码从excel提取个人值班表
2021/06/05 Python
适合后台管理系统开发的12个前端框架(小结)
2021/06/29 Javascript
SpringBoot中获取profile的方法详解
2022/04/08 Java/Android