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中Collection的一些常用方法总结
Jun 13 Java/Android
Java实战之用Swing实现通讯录管理系统
Jun 13 Java/Android
详解Java实践之建造者模式
Jun 18 Java/Android
Java Optional<Foo>转换成List<Bar>的实例方法
Jun 20 Java/Android
eclipse创建项目没有dynamic web的解决方法
Jun 24 Java/Android
Spring整合Mybatis的全过程
Jun 28 Java/Android
JUnit5常用注解的使用
Jul 02 Java/Android
Java比较两个对象中全部属性值是否相等的方法
Aug 07 Java/Android
使用logback实现按自己的需求打印日志到自定义的文件里
Aug 30 Java/Android
Java存储没有重复元素的数组
Apr 29 Java/Android
spring 项目实现限流方法示例
Jul 15 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
如何做到多笔资料的同步
2006/10/09 PHP
php定时删除文件夹下文件(清理缓存文件)
2013/01/23 PHP
PHP mysqli_free_result()与mysqli_fetch_array()函数详解
2016/09/21 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
2017/09/16 PHP
详解thinkphp中的volist标签
2018/01/15 PHP
PHP添加文字水印或图片水印的水印类完整源代码与使用示例
2019/03/18 PHP
jQuery读取和设定KindEditor值的方法
2013/11/22 Javascript
JS判断移动端访问设备并加载对应CSS样式
2014/06/13 Javascript
深入理解JavaScript系列(50):Function模式(下篇)
2015/03/04 Javascript
js闭包所用的场合以及优缺点分析
2015/06/22 Javascript
PHP结合jQuery实现红蓝投票功能特效
2015/07/22 Javascript
浏览器环境下JavaScript脚本加载与执行探析之defer与async特性
2016/01/14 Javascript
如何利用Promises编写更优雅的JavaScript代码
2016/05/17 Javascript
获取JS中网页各种高宽与位置的方法总结
2016/07/27 Javascript
基于js中的原型、继承的一些想法
2016/08/10 Javascript
jQuery弹出层后禁用底部滚动条(移动端关闭回到原位置)
2016/08/29 Javascript
微信小程序文章详情页面实现代码
2018/09/10 Javascript
[02:19]2018年度DOTA2最佳核心位选手-完美盛典
2018/12/17 DOTA
在DigitalOcean的服务器上部署flaskblog应用
2015/12/19 Python
python微信跳一跳系列之色块轮廓定位棋盘
2018/02/26 Python
python处理DICOM并计算三维模型体积
2019/02/26 Python
python 读取yaml文件的两种方法(在unittest中使用)
2020/12/01 Python
java字符串格式化输出实例讲解
2021/01/06 Python
ASOS英国官网:英国在线时装和化妆品零售商
2017/05/19 全球购物
屈臣氏乌克兰:Watsons UA
2019/10/29 全球购物
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
2013/09/18 面试题
写好求职信第一句话的技巧
2013/10/26 职场文书
上班玩手机检讨书
2014/02/17 职场文书
英语专业自荐书
2014/06/13 职场文书
七一建党节演讲稿
2014/09/11 职场文书
领导班子四风问题对照检查材料
2014/09/27 职场文书
关于长城的导游词
2015/01/30 职场文书
2016年“我们的节日·中秋节”活动总结
2016/04/05 职场文书
导游词之沈阳植物园
2019/11/30 职场文书
Vue详细的入门笔记
2021/05/10 Vue.js
Redis实现一个账号只能登录一个设备
2022/04/19 Redis