Mybatis中的<![CDATA[]]>标签在判断日期场景中的使用

简介: Mybatis中的<![CDATA[]]>标签在判断日期场景中的使用

背景

在使用mybatis 时我们sql是写在xml 映射文件中,如果写的sql中有一些特殊的字符的话,在解析xml文件的时候会被转义。

如大于号>会被转义为&gt;转义后的可读性不是很直观,如果想让其看起来更加直观可读性更强的话,则需要使用<![CDATA[ ]]>来圈起来不被转义的符号以此来解决这个问题。

常见的转义字符,和它们表述的场景:

转义字符 原字符 说明
&lt; < 小于
&gt; '>' 大于
&amp; & 和号
&apos; ' 单引号
&quot; " 双引号

<![CDATA[ ]]> 是什么

<![CDATA[ ]]> 是什么,这是XML语法。在CDATA内部的所有内容都会被解析器忽略。

术语 CDATA 是不应该由 XML 解析器解析的文本数据。

像 “<” 和 “&” 字符在 XML 元素中都是非法的。

“<” 会产生错误,因为解析器会把该字符解释为新元素的开始。

“&” 会产生错误,因为解析器会把该字符解释为字符实体的开始。

但是有个问题那就是 等这些标签都不会被解析,所以我们只把有特殊字符的语句放在 <![CDATA[ ]]> 尽量缩小 <![CDATA[ ]]> 的范围。

实例如下:

时间字符串比较如:String createTime = "2020-03-12 00:00:00"
<if test="createTime != null and createTime != ''">
<![CDATA[ and a.create_time >= #{createTime } ]]>
</if>
利用时间函数:
<if test="createTime != null and createTime != ''">
<![CDATA[
and a.create_time >= str_to_date(#{createTime,jdbcType=DATE},'yyyy-MM-dd hh24:mi:ss')
]]>
</if>


本篇文章如有帮助到您,请给「翎野君」点个赞,感谢您的支持。

目录
相关文章
|
2月前
|
SQL Java 数据库连接
MyBatis【源码探究 01】mapper.xml文件内<if test>标签判断参数值不等于null和空(当参数值为0)时筛选条件失效原因分析
MyBatis【源码探究 01】mapper.xml文件内<if test>标签判断参数值不等于null和空(当参数值为0)时筛选条件失效原因分析
234 0
MyBatis【源码探究 01】mapper.xml文件内<if test>标签判断参数值不等于null和空(当参数值为0)时筛选条件失效原因分析
|
8月前
|
Java 数据库连接 mybatis
mybatis的set标签
mybatis的set标签
|
9月前
|
SQL Java 数据库连接
28MyBatis - 动态SQL的 if标签
28MyBatis - 动态SQL的 if标签
46 0
|
2月前
|
SQL XML Java
Mybatis中选择语句的使用:<choose>标签、分区排序 Row_num() over ()函数的使用呢
Mybatis中选择语句的使用:<choose>标签、分区排序 Row_num() over ()函数的使用呢
24 0
|
9月前
|
SQL XML Java
mybatis之动态SQL常见标签的使用
mybatis之动态SQL常见标签的使用
|
8月前
|
SQL Java 数据库连接
mybatis的trim标签insert标签update标签
mybatis的trim标签insert标签update标签
|
16天前
|
存储 Java 数据库连接
mybatis精讲(三)--标签及TypeHandler使用
mybatis精讲(三)--标签及TypeHandler使用
|
8月前
|
Java 数据库连接 mybatis
mybatis的choose,when,otherwize标签
mybatis的choose,when,otherwize标签
|
12天前
|
Java 数据库连接 mybatis
mybatis自定义插件实现日期自动注入
mybatis自定义插件实现日期自动注入
19 0
|
2月前
|
JSON Java 数据格式
nbcio-boot升级springboot、mybatis-plus和JSQLParser后的LocalDateTime日期json问题
nbcio-boot升级springboot、mybatis-plus和JSQLParser后的LocalDateTime日期json问题
27 0