前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mybatis中的<![CDATA[]]>标签在判断日期场景中的使用

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

作者头像
翎野君
发布2023-05-12 20:51:14
6521
发布2023-05-12 20:51:14
举报
文章被收录于专栏:翎野君

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

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

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

转义字符

原字符

说明

&lt;

<

小于

&gt;

'>'

大于

&amp;

&

和号

&apos;

'

单引号

&quot;

"

双引号

<![CDATA[ ]]> 是什么

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

术语 CDATA 是不应该由 XML 解析器解析的文本数据。 像 “<” 和 “&” 字符在 XML 元素中都是非法的。 “<” 会产生错误,因为解析器会把该字符解释为新元素的开始。 “&” 会产生错误,因为解析器会把该字符解释为字符实体的开始。

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

实例如下:

代码语言:javascript
复制
时间字符串比较如:

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>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-04-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • <![CDATA[ ]]> 是什么
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档