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中重写父类方法加不加@Override详解
Jun 21 Java/Android
Java实现多线程聊天室
Jun 26 Java/Android
Java并发编程必备之Future机制
Jun 30 Java/Android
小程序与后端Java接口交互实现HelloWorld入门
Jul 09 Java/Android
Logback 使用TurboFilter实现日志级别等内容的动态修改操作
Aug 30 Java/Android
Java实现经典游戏泡泡堂的示例代码
Apr 04 Java/Android
Android在Sqlite3中的应用及多线程使用数据库的建议
Apr 24 Java/Android
Jmerte 分布式压测及分布式压测配置
Apr 30 Java/Android
Java版 单机五子棋
May 04 Java/Android
Android开发手册Chip监听及ChipGroup监听
Jun 10 Java/Android
SpringBoot使用ip2region获取地理位置信息的方法
Jun 21 Java/Android
Spring boot admin 服务监控利器详解
Aug 05 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函数解决SQL injection
2006/10/09 PHP
PHP中JSON的应用技巧
2015/10/10 PHP
PHP检测数据类型的几种方法(总结)
2017/03/04 PHP
ThinkPHP实现的rsa非对称加密类示例
2018/05/29 PHP
php简单计算权重的方法示例【适合抽奖类应用】
2019/06/10 PHP
js客户端快捷键管理类的较完整实现和应用
2010/06/08 Javascript
jquery $.ajax相关用法分享
2012/03/16 Javascript
JavaScript实现动态删除列表框值的方法
2015/08/12 Javascript
Bootstrap插件全集
2016/07/18 Javascript
深入浅析jQuery对象$.html
2016/08/22 Javascript
jQuery UI插件实现百度提词器效果
2016/11/21 Javascript
jQuery+ajax实现动态添加表格tr td功能示例
2018/04/23 jQuery
vue项目打包之后背景样式丢失的解决方案
2019/01/17 Javascript
微信小程序制作表格的方法
2019/02/14 Javascript
vue拖拽组件 vuedraggable API options实现盒子之间相互拖拽排序
2019/07/08 Javascript
JavaScript实现雪花飘落效果
2020/12/27 Javascript
跟老齐学Python之字典,你还记得吗?
2014/09/20 Python
在Python中实现贪婪排名算法的教程
2015/04/17 Python
python 网络编程常用代码段
2016/08/28 Python
教大家玩转Python字符串处理的七种技巧
2017/03/31 Python
详解python之多进程和进程池(Processing库)
2017/06/09 Python
解决python大批量读写.doc文件的问题
2018/05/08 Python
使用Python的Dataframe取两列时间值相差一年的所有行方法
2018/07/10 Python
python 删除字符串中连续多个空格并保留一个的方法
2018/12/22 Python
Python中出现IndentationError:unindent does not match any outer indentation level错误的解决方法
2020/04/18 Python
python GUI库图形界面开发之PyQt5打印控件QPrinter详细使用方法与实例
2020/02/28 Python
Django:使用filter的pk进行多值查询操作
2020/07/15 Python
python各种excel写入方式的速度对比
2020/11/10 Python
电子商务毕业生求职信
2013/11/10 职场文书
工作交流会欢迎词
2014/01/12 职场文书
教师先进工作者事迹材料
2014/05/01 职场文书
党的群众路线教育实践方案
2014/05/11 职场文书
公安四风对照检查材料思想汇报
2014/10/11 职场文书
解决Nginx 配置 proxy_pass 后 返回404问题
2021/03/31 Servers
redis中lua脚本使用教程
2021/11/01 Redis
ubuntu如何搭建vsftpd服务器
2022/12/24 Servers