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 SSH 秘钥连接mysql数据库的方法
Jun 28 Java/Android
SpringBoot 拦截器妙用你真的了解吗
Jul 01 Java/Android
Log4j.properties配置及其使用
Aug 02 Java/Android
Java中CyclicBarrier和CountDownLatch的用法与区别
Aug 23 Java/Android
正则表达式拆分url实例代码
Feb 24 Java/Android
springboot入门 之profile设置方式
Apr 04 Java/Android
springboot用户数据修改的详细实现
Apr 06 Java/Android
Java 超详细讲解hashCode方法
Apr 07 Java/Android
Java 垃圾回收超详细讲解记忆集和卡表
Apr 08 Java/Android
Java Spring Boot 正确读取配置文件中的属性的值
Apr 20 Java/Android
Android 中的类文件和类加载器详情
Jun 05 Java/Android
MyBatis在注解上使用动态SQL方式(@select使用if)
Jul 07 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
一个oracle+PHP的查询的例子
2006/10/09 PHP
php实现从ftp服务器上下载文件树到本地电脑的程序
2009/02/10 PHP
解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
2013/06/24 PHP
用ASP将SQL搜索出来的内容导出为TXT的代码
2007/07/27 Javascript
js 图片缩放(按比例)控制代码
2009/05/27 Javascript
jQuery为iframe的body添加click事件的实现代码
2011/04/07 Javascript
jQuery关于导航条背景切换效果实现示例
2013/09/04 Javascript
javascript框架设计之类工厂
2015/06/23 Javascript
javascript实现方法调用与方法触发小结
2016/03/26 Javascript
基于jQuery的ajax方法封装
2016/07/14 Javascript
利用JS判断字符串是否含有数字与特殊字符的方法小结
2016/11/25 Javascript
利用Jquery实现几款漂亮实用的时间轴(附示例代码)
2017/02/15 Javascript
微信小程序开发之animation循环动画实现的让云朵飘效果
2017/07/14 Javascript
基于 Vue 实现一个酷炫的 menu插件
2017/11/14 Javascript
Vue2.0 v-for filter列表过滤功能的实现
2018/09/07 Javascript
wx-charts 微信小程序图表插件的具体使用
2019/08/18 Javascript
vue 组件间的通信之子组件向父组件传值的方式
2020/07/29 Javascript
vue3+typescript实现图片懒加载插件
2020/10/26 Javascript
Nodejs 微信小程序消息推送的实现
2021/01/20 NodeJs
[39:21]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.24
2019/09/10 DOTA
Python生成短uuid的方法实例详解
2018/05/29 Python
python迭代dict的key和value的方法
2018/07/06 Python
python使用Matplotlib绘制分段函数
2018/09/25 Python
十行代码使用Python写一个USB病毒
2019/06/21 Python
python 申请内存空间,用于创建多维数组的实例
2019/12/02 Python
美国著名首饰网站:BaubleBar
2016/08/29 全球购物
荷兰最大的儿童服装店:The Kids Republic
2019/04/13 全球购物
Notino芬兰:购买香水和化妆品
2019/04/15 全球购物
阿拉伯书店:Jamalon
2019/07/24 全球购物
华为消费者德国官方网站:HUAWEI德国
2020/11/03 全球购物
便利店的创业计划书
2014/01/15 职场文书
金融事务专业毕业生求职信
2014/02/23 职场文书
财务管理专业毕业生求职信
2014/06/02 职场文书
2014房屋登记授权委托书
2014/10/13 职场文书
Python 中的单分派泛函数你真的了解吗
2021/06/22 Python
JUnit5常用注解的使用
2021/07/02 Java/Android