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 30 Java/Android
Spring中bean的生命周期之getSingleton方法
Jun 30 Java/Android
SpringBoot集成Druid连接池连接MySQL8.0.11
Jul 02 Java/Android
MyBatis-Plus 批量插入数据的操作方法
Sep 25 Java/Android
Java9新特性之Module模块化编程示例演绎
Mar 16 Java/Android
SpringBoot整合Minio文件存储
Apr 03 Java/Android
Java 异步任务计算FutureTask
Apr 28 Java/Android
Android开发手册自定义Switch开关按钮控件
Jun 10 Java/Android
Java完整实现记事本代码
Jun 16 Java/Android
Java界面编程实现界面跳转
Jun 16 Java/Android
Android基础入门之dataBinding的简单使用教程
Jun 21 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使用pdo连接报错Connection failed SQLSTATE的解决方法
2014/12/15 PHP
WordPress中查询文章的循环Loop结构及用法分析
2015/12/17 PHP
php表单文件iframe异步上传实例讲解
2017/07/26 PHP
JQueryEasyUI datagrid框架的基本使用
2013/04/08 Javascript
jQuery对象的selector属性用法实例
2014/12/27 Javascript
JavaScript中的值是按值传递还是按引用传递问题探讨
2015/01/30 Javascript
jQuery实现简单的间隔向上滚动效果
2015/03/09 Javascript
一张Web前端的思维导图分享
2015/07/03 Javascript
javascript模拟C#格式化字符串
2015/08/26 Javascript
ES6新特性之变量和字符串用法示例
2017/04/01 Javascript
javaScript中封装的各种写法示例(推荐)
2017/07/03 Javascript
纯JavaScript实现实时反馈系统时间
2017/10/26 Javascript
vue项目中引入noVNC远程桌面的方法
2018/03/05 Javascript
详解webpack引入第三方库的方式以及注意事项
2019/01/15 Javascript
javascript实现手动点赞效果
2019/04/09 Javascript
js作用域和作用域链及预解析
2019/04/11 Javascript
浅谈layui使用模板引擎动态渲染元素要注意的问题
2019/09/14 Javascript
[20:57]Ti4主赛事第三天开幕式
2014/07/21 DOTA
浅谈python中scipy.misc.logsumexp函数的运用场景
2016/06/23 Python
78行Python代码实现现微信撤回消息功能
2018/07/26 Python
使用Python横向合并excel文件的实例
2018/12/11 Python
Python读取csv文件分隔符设置方法
2019/01/14 Python
python字典嵌套字典的情况下找到某个key的value详解
2019/07/10 Python
Python2手动安装更新pip过程实例解析
2020/07/16 Python
Python 实现PS滤镜中的径向模糊特效
2020/12/03 Python
Python urlopen()参数代码示例解析
2020/12/10 Python
css3截图_动力节点Java学院整理
2017/07/11 HTML / CSS
美国背景检查、公共记录和人物搜索网站:BeenVerified
2018/02/25 全球购物
加拿大时装零售商:Influence U
2018/12/22 全球购物
美术指导助理求职信
2014/04/20 职场文书
2015年元旦标语大全
2014/12/09 职场文书
小学教师个人工作总结2015
2015/04/20 职场文书
导游词之四川武侯祠
2019/10/21 职场文书
使用golang编写一个并发工作队列
2021/05/08 Golang
如何利用Python实现一个论文降重工具
2021/07/09 Python
详解apache编译安装httpd-2.4.54及三种风格的init程序特点和区别
2022/07/15 Servers