首页 > 其他分享 >Mybatis中的<![CDATA[]]>标签在判断日期场景中的使用

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

时间:2023-04-23 21:35:03浏览次数:51  
标签:解析器 字符 00 场景 标签 转义 Mybatis createTime

背景

在使用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>

 

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

首发链接:https://www.cnblogs.com/lingyejun/p/17347790.html

标签:解析器,字符,00,场景,标签,转义,Mybatis,createTime
From: https://www.cnblogs.com/lingyejun/p/17347790.html

相关文章

  • redis应用场景及三种集群方式
    1.正文1.redis应用场景2.redis得持久化方式3.redis得集群4.java连接redis服务器2.redis应用场景1、热点数据的缓存----由于redis访问速度块、支持的数据类型比较丰富,所以redis很适合用来存储热点数据,另外结合expire,我们可以设置过期时间然后再进行缓存更新操作,这......
  • MyBatis入门
    第一个程序环境说明jdk8+MySQL8maven3IDEA2021学习前需要掌握:JDBCMySQLJava基础MavenJunit什么是MyBatisMyBatis是一款优秀的持久层框架MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集的过程MyBatis可以使用简单的XML或注解来配置和映射原生信息,将接口......
  • Eclipse默认标签TODO,XXX,FIXME和自定义标签[转]
    1TODO表示需要实现,但目前还未实现的功能2XXX勉强可以工作,但是需要改进的功能3FIXME代码是错误的,不能工作,需要修复4.自定义标签window-->preferences-->java-->compiler-->tags选择new,输入tag,选择priority,ok上述所有注释都会被eclipseta......
  • mybatis-plus没有将XML配置文件放到classpath路径下的解决办法
    1.需求:我将mapper接口对应的xml文件没有放到resources路径下,而是放到了如下图中,导致无法识别1.1默认可以放mapper对应配置文件的位置1.2本人实际放置的mapper对应的xml文件位置2.解决:2.1第一步:在pom文件中添加如下配置<build><resources><reso......
  • springboot使用mybatis应用clickhouse
    一、clickhouse,说白了还是数据库,不一样的是clickhouse是列式存储,和传统的MySQL行式存储不同的地方在于,查询和所储。1)查询,行式和列式的区别,图形说明说明:理解上来说,行式对于一条数据的完整性索引会更快。而列式对于统计和查询指定数据会更加块。2)数据......
  • redis linux下安装 redis启动方式 redis典型场景 redis通用命令 数据结构和内部编码 r
    内容回顾#dockerfile命令 RUNCOPYADDENVEXPOSEWORKDIRCMD:可以用新命令覆盖的ENTRYPOINT:不可以被覆盖#容器要运行,必须有个前台进程#dockerfile部署图书管理系统项目 FROMpython:3.8MAINTAINERlqzWORKDIR/soft......
  • 条码打印软件怎样制作弧形标签
    在使用条码打印软件制作标签的时候,不同的客户对于标签上文字的排版要求是不一样的。常见的方形标签,对于文字的排版可能不是那么多要求。如果是圆形标签,可能需要文字呈扇形排版或者是弧形排版(如下图),那么这种需要怎么做呢?今天小编就给大家演示一下弧形文字的制作过程。打开条码打......
  • spring事务失效的12种场景
    1.方法访问权限问题,只支持public2.方法用final修饰,动态代理不能代理final方法3.方法内部调用,同一对象内调用没有使用代理,未被aop事务管理器控制4.未被spring管理5.多线程调用,事务管理内部使用threadLocal,不同线程间不在同一事务6.表不支持事务7.未配置事务事务不回滚8.错误的传播......
  • MyBatis运行找不到xml资源文件
    MyBatis运行找不到xml资源文件运行报错:报错原因:程序运行后,没有将src/main/java目录下的资源文件(xml、properties等等)导出到target工作目录下,所以程序找不到java目录:运行后的target目录:可以看到并没有MonsterMapper.xml文件解决方法:Maven项目在pom.xml......
  • ConfigMap&Secret场景应用
    一、configMap1.1、概述ConfigMap是一种API对象,用来将非加密数据保存到键值对中。可以用作环境变量、命令行参数或者存储卷中的配置文件。ConfigMap可以将环境变量配置信息和容器镜像解耦,便于应用配置的修改。如果需要存储加密信息时可以使用Secret对象。1.2、作用ConfigM......