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 13 Java/Android
Java 数组内置函数toArray详解
Jun 28 Java/Android
新手初学Java List 接口
Jul 07 Java/Android
MybatisPlus EntityWrapper如何自定义SQL
Mar 22 Java/Android
Android基于Fresco实现圆角和圆形图片
Apr 01 Java/Android
Android开发实现极为简单的QQ登录页面
Apr 24 Java/Android
java版 联机五子棋游戏
May 04 Java/Android
Android studio 简单计算器的编写
May 20 Java/Android
Java实现HTML转为Word的示例代码
Jun 28 Java/Android
maven 解包依赖项中的文件的解决方法
Jul 15 Java/Android
Java实现超大Excel文件解析(XSSF,SXSSF,easyExcel)
Jul 15 Java/Android
IDEA中sout快捷键无效问题的解决方法
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
一个PHP数组应该有多大的分析
2009/07/30 PHP
php与XML、XSLT、Mysql的结合运用实现代码
2009/11/19 PHP
PHP生成Flash动画的实现代码
2010/03/12 PHP
微信企业转账之入口类分装php代码
2018/10/01 PHP
phpQuery采集网页实现代码实例
2020/04/02 PHP
Avengerls vs KG BO3 第一场2.18
2021/03/10 DOTA
js获取div高度的代码
2008/08/09 Javascript
javascript调试说明
2010/06/07 Javascript
JavaScript去掉数组中的重复元素
2011/01/13 Javascript
Nodejs sublime text 3安装与配置
2014/06/19 NodeJs
javascript实现iframe框架延时加载的方法
2014/10/30 Javascript
TypeScript具有的几个不同特质
2015/04/07 Javascript
javascript实现数字倒计时特效
2016/03/30 Javascript
AngularJS获取json数据的方法详解
2017/05/27 Javascript
vue2.0 elementUI制作面包屑导航栏
2018/02/22 Javascript
JavaScript实现计算圆周率到小数点后100位的方法示例
2018/05/08 Javascript
vue项目中运用webpack动态配置打包多种环境域名的方法
2019/06/24 Javascript
使用Vue实现简单计算器
2020/02/25 Javascript
微信小程序中的列表切换功能实例代码详解
2020/06/09 Javascript
Node.js fs模块原理及常见用途
2020/10/22 Javascript
Vue实现简易购物车页面
2020/12/30 Vue.js
python format 格式化输出方法
2018/07/16 Python
基于plt.title无法显示中文的快速解决
2020/05/16 Python
QT5 Designer 打不开的问题及解决方法
2020/08/20 Python
详解Python中的路径问题
2020/09/02 Python
Pytorch实现WGAN用于动漫头像生成
2021/03/04 Python
数学专业推荐信范文
2013/11/21 职场文书
毕业生个人求职信范例分享
2013/12/17 职场文书
实习协议书范本
2014/04/22 职场文书
质量提升方案
2014/06/16 职场文书
公积金贷款承诺书
2015/04/30 职场文书
2016年会开场白台词
2015/06/01 职场文书
《活见鬼》教学反思
2016/02/24 职场文书
python 自动刷新网页的两种方法
2021/04/20 Python
python如何进行基准测试
2021/04/26 Python
Java 中的 Unsafe 魔法类的作用大全
2021/06/26 Java/Android