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 将PPT幻灯片转为HTML文件的实现思路
Jun 11 Java/Android
SpringBoot2 参数管理实践之入参出参与校验的方式
Jun 16 Java/Android
详解Java实践之建造者模式
Jun 18 Java/Android
Spring Boot 启动、停止、重启、状态脚本
Jun 26 Java/Android
新手初学Java网络编程
Jul 07 Java/Android
mybatis 获取无数据的字段不显示的问题
Jul 15 Java/Android
SpringBoot+VUE实现数据表格的实战
Aug 02 Java/Android
一篇文章带你学习Mybatis-Plus(新手入门)
Aug 02 Java/Android
JPA 通过Specification如何实现复杂查询
Nov 23 Java/Android
Spring Boot接口定义和全局异常统一处理
Apr 20 Java/Android
一文了解Java动态代理的原理及实现
Jul 07 Java/Android
SpringBoot详解自定义Stater的应用
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
php中将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串
2011/08/23 PHP
php数组遍历类与用法示例
2019/05/24 PHP
Laravel 实现数据软删除功能
2019/08/21 PHP
JavaScript Archive Network 集合
2007/05/12 Javascript
开发插件的两个方法jquery.fn.extend与jquery.extend
2013/11/21 Javascript
JS判断两个时间大小的示例代码
2014/01/28 Javascript
jQuery实现的一个自定义Placeholder属性插件
2014/08/11 Javascript
JS实现超过长度限制后自动跳转下一款文本框的方法
2015/02/23 Javascript
基于javascript html5实现3D翻书特效
2016/03/14 Javascript
JS加载器如何动态加载外部js文件
2016/05/26 Javascript
jQuery Chart图表制作组件Highcharts用法详解
2016/06/01 Javascript
JavaScript中setter和getter方法介绍
2016/07/11 Javascript
基于jQuery实现表格的排序
2016/12/02 Javascript
Javascript blur与click冲突解决办法
2017/01/09 Javascript
详解axios在vue中的简单配置与使用
2017/05/10 Javascript
jQuery实现简单的滑动导航代码(移动端)
2017/05/22 jQuery
解析Json字符串的三种方法日常常用
2018/05/02 Javascript
详解基于DllPlugin和DllReferencePlugin的webpack构建优化
2018/06/28 Javascript
vue动态路由:路由参数改变,视图不更新问题的解决
2019/11/05 Javascript
Python获取Linux系统下的本机IP地址代码分享
2014/11/07 Python
Python遍历指定文件及文件夹的方法
2015/05/09 Python
SQLite3中文编码 Python的实现
2017/01/11 Python
浅谈django开发者模式中的autoreload是如何实现的
2017/08/18 Python
Python实现简单的HttpServer服务器示例
2017/09/25 Python
pandas按若干个列的组合条件筛选数据的方法
2018/04/11 Python
详解Python发送email的三种方式
2018/10/18 Python
从pandas一个单元格的字符串中提取字符串方式
2019/12/17 Python
Python文件操作基础流程解析
2020/03/19 Python
python如何写出表白程序
2020/06/01 Python
Python如何定义有可选参数的元类
2020/07/31 Python
澳大利亚家具和家居用品购物网站:Zanui
2018/12/29 全球购物
一组SQL面试题
2016/02/15 面试题
求职信模版
2013/11/30 职场文书
大学社团招新的通讯稿
2014/09/10 职场文书
2016庆祝国庆67周年宣传语
2015/11/25 职场文书
Python爬虫之用Xpath获取关键标签实现自动评论盖楼抽奖(二)
2021/06/07 Python