Mybatis mapper.xml sql语句转义字符

HDMI协议介绍(二)--DataIsland Packets 前文简单介绍了HDMI传输的三个周期:控制周期、DataIsland周期和Video周期。DataIsland传输音频和辅助数据,这些数据以Packet的形式传输。本文简单介绍DataIsland Packet。 阅读详情

在xml的sql语句中,不能直接用大于号、小于号、单引号、双引号,要用转义字符替代

在sql语句里动态赋值时,如果说需要用单引号,不能直接用 ‘ 表示:

举例:

<select id="selectBusCarTrackByCarId" parameterType="net.hehang.base.entity.Search" resultMap="result_BusCarTrack_Map">
        select 
            t.*,to_char(t.UP_DATE,'yyyy-mm-dd hh24:mi:ss') upDate123
        from BUS_CAR_TRACK t 
        <where>
        1=1
        	<if test="carId != null and carId !=''">
				AND t.CAR_ID = #{carId}
			</if>
			<if test="curDate != null and curDate !=''">
				AND to_char(t.UP_DATE,'yyyy-mm-dd')='#{curDate}'
			</if>
		</where>
        order by t.UP_DATE desc
    </select> 
项目运行进行测试时,报错:

严重: Servlet.service() for servlet [SpringMVC] in context with path [/smarter_SecurityManagement] threw exception [Request processing failed; nested exception is org.springframework.jdbc.InvalidResultSetAccessException: 
### Error querying database.  Cause: java.sql.SQLException: 无效的列索引
### The error may exist in file [D:\WebServer\apache-tomcat-7.0.69-windows-x64\apache-tomcat-7.0.69\webapps\smarter_SecurityManagement\WEB-INF\classes\net\hehang\indexManage\dao\mapping\BusCarTrackMapper.xml]
### The error may involve net.hehang.indexManage.dao.BusCarTrackDao.selectBusCarTrackByCarId-Inline
### The error occurred while setting parameters
### SQL: SELECT count(*) FROM (SELECT t.*, to_char(t.UP_DATE, 'yyyy-mm-dd hh24:mi:ss') upDate123 FROM BUS_CAR_TRACK t WHERE 1 = 1 AND t.CAR_ID = ? AND to_char(t.UP_DATE, 'yyyy-mm-dd') = '?') table_count
### Cause: java.sql.SQLException: 无效的列索引
debug模式下,发现所需的carId和curDate都是有值的,且格式正确;

错误原因是mapper配置里:

AND to_char(t.UP_DATE,'yyyy-mm-dd')='#{curDate}'
xml配置里不能直接用特殊符号,需要进行转义;

修改为:

AND to_char(t.UP_DATE,'yyyy-mm-dd')=#{curDate}
因为我的curDate本来就是String类型,此处不需要再加单引号限定了,如果某些地方确实需要单引号,要用&apos;替换。

其他的例如
<= 应表示为:&lt;= 或是&lt;&amp;=   , >=以此类推


其他转义字符

                     &lt;                                 

                     <

                     小于号                                           

                     &gt;

                     >                                      

                     大于号

                     &amp;

                     &

                     和

                     &apos;

                     ’

                     单引号

                     &quot;

                     "

                     双引号

android 9.0Settings休眠时间项(屏幕超时)添加永不休眠功能 在9.0的系统产品开发中,系统中默认息屏时间为1分钟,可以通过在Setting中的息屏时间选项设置对应的息屏时间,但是在开发平板类的产品中,需要实现永不休眠的功能,所以需要在Settings中的息屏时间中添加永不休眠时间这一项来实现这个功能,接下来看息屏时间的相关功能,来添加这个功能 阅读详情

相关推荐

RT-Thread网络编程:基于STM32F407的TCP客户端实现(含完整代码解析)

本文详细介绍了在STM32F407平台上,基于RT-Thread操作系统和LWIP协议栈实现工业级可靠TCP客户端的完整过程。内容涵盖底层ETH驱动配置、Socket编程、连接保活与断线重连机制、数据收发协议设计以及资源管理,提供了可应用于实际项目的健壮代码框架与调试技巧。

weixin_29184371的博客 492

MyBatis中xml-SQL符号转义

在写项目的时候对数据库进行操作经常会用到MyBatis,但是经常会遇到在数据库写完sql可以运行,在xml文件中粘贴就运行报错的情况,通常是因为sql中的字符需要转义。

qq_41292133的博客 502

保姆级避坑指南:在NVMe SSD上安装Ubuntu 24.04,搞定RST错误和分区方案

本文提供在NVMe SSD上安装Ubuntu 24.04的详细指南,解决RST错误和分区方案问题。从BIOS设置到分区策略优化,帮助用户充分发挥NVMe固态硬盘性能,避免常见安装陷阱,实现无痛安装和后期调优。

weixin_26976635的博客 560

【Mybatis】特殊符号与转义字符

在MyBatis的XML映射文件中,由于XML本身的语法限制,需要对某些特殊字符进行转义。这是因为像大于号()和小于号()这样的字符在XML中有特殊的意义,分别用于标记元素的结束和开始。如果直接使用这些字符,可能会导致XML解析错误。

慕白Lee的博客 1万+

正弦波产生电路_文氏桥振荡

本文以文氏桥振荡为基础产生正弦波,介绍了原理、计算、应用时需要注意的一些点,并给出了实测可用的电路模板

白鹤忘机的博客 3万+

减小伺服电机共振的方法(以松下伺服为例)

嘿 ! 我是【小黄】 , 我们又见面啦 !!! 毕竟技术只有大家交流才会进步嘛 ! 这博客是对自己学习的一点点记录和总结 ,如果您对自动控制感兴趣的话 ,可以关注一下我的动态 , 我们一起学习呀 ! 我们都还年轻 ,我们还有无限可能 。 YES ! 减小伺服电机共振的方法(以松下伺服为例)1. 准备工作:1.1.1 如何推定共振点:1.1.2 测定实操:1.1.3 总结:2. 下期预告: 在我们调试完伺服参数以后机器人运动到某个特定位置会产生振动或异响,我们要做的就是消除这个异响保..

在下小黄的博客 1万+

在 MyBatis 中使用 <、<= 等特殊符号

目录1. 直接Java 处理(不推荐)2. 特殊符号转义3. 硬核方法:<![CDATA[ ]]> 在实际的开发中,经常会遇到一些场景,比如查询小于某个时间,或者是查询小于某个年龄等。这个时候就需要在 MyBatis 的 XML 文件中使用一些 <、<= 等符号,但是如果直接使用的话文件会报错:Tag name expected,这个时候处理的话一般有以下三种方式: 1. 直接Java 处理(不推荐) 这种方法其实就是通过 #{param} 或者是 ${param} 直接在 Java 代码中手动

一只奋斗的猪 4万+

Vivado SDK中LWIP库版本冲突与RTL8211FDI兼容性实战解析

本文深入解析Vivado 2019.1 SDK中LWIP 1.0库与RTL8211FDI千兆PHY芯片的版本冲突问题,并提供实战解决方案。通过手动移植高版本LWIP库、整合第三方驱动及优化BSP配置,有效解决了以太网通信兼容性问题,确保千兆性能稳定运行。

ios99的博客 273

String和Date互转:mapper.xml中或者class中

String和Date互转:mapper.xml中 mapper.xml中SQL的tochar()可以把传入的date类型参数改为对应的字符串格式,这样子传入的参数不管是字符串还是Date都能调用了 select * from F where to_char(F_DATE,'yyyy-mm-dd') = #{fDate} 如果是tochar(todate())就会把日期格式取反,如2019...

FromNowOnUntilTheEnd 6086

GenomeSurvyIndex设计--随笔017

摘要: GenomeSurvyIndex是一款自动化多倍体基因组调查工具,整合FastK、Smudgeplot和GenomeScope2.0三大核心组件。该工具通过k-mer频谱特征自动识别基因组倍性类型,包括二倍体(1:2:4)和同源四倍体(1:2:3:4),并采用3a1b>2a2b算法判定同源/异源多倍体。工具提供完整的conda环境配置方案,封装为Python脚本实现全流程自动化分析,包含k-mer计数、倍性判定、基因组特征计算等功能,最终输出标准化报告和可视化图表。该方案可直接部署使用,适用于

weixin_44874487的博客 475

RK3588 固定hdmiin的dev/videoX节点

RK3588 固定hdmiin的dev/videoX节点

目前从事linux驱动开发,多交流多学习吧 2050

mybatis在xml文件中处理大于号小于号的方法

第一种方法: 用了转义字符把>和 SELECT * FROM test WHERE 1 = 1 AND start_date  <= CURRENT_DATE AND end_date >= CURRENT_DATE 附:XML转义字符                      <

奋斗、 36万+

使用AI预测彩票的架构思路

彩票是随机的数字游戏,不要过度依赖AI,本文仅供娱乐研究

淘淘小窝 9408

【mybatis】mapper.xml中sql语句大小比较的转义字符

mybatis的mapper文件就是xml类型的,并且xml文件自带的标签正好里面是用‘’来进行区分的,所以这个xml文件在进行解析的时候,如果我们的sql语句中带着‘’的话会有概率解析错误,这个就和我们在html中如果想要在页面上输出一个反斜杠,直接输出是不能输出是一个道理。...

weixin_67199464的博客 1135

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

【SQL语句】MyBatis中Mapper.xml文件中的转义字符

XML只有5个转义符: 转义符 表达式 说明 &lt; < 小于号 &gt; > 大于号 &amp; & 和 &apos; ’ 单引号 &quot; " 双引号 注意: 转义序列必须以”;”结束 区分大小写 转义序列字符之间不能有空格 单独出现的”&”不会被认为是转义的开始 最后来一张可爱的珍珠: ...

化身孤岛的鲸 1169

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Mybatis在Mapper.xml使用转义字符替代大于号小于号的方法

记录一下,怕忘了 转义字符替代"&gt;“和”&lt;"。 mapper文件示例代码: 即 select * from project where id &gt; 'id' &lt;select id="GetList" parameterType="com.dsp.model.Project" resultType="com.model.Project"&gt; select *

洛北辰南的博客 1225

关于Mybatis中的xml中的大于号,小于号处理方法

转载至https://www.cnblogs.com/winner-0715/p/6132755.html 第一种方法: 用转义字符把">“和”<"替换掉,就没有问题了。 mapper文件示例代码: <if test="startTime != null "> AND order_date &gt;= #{startTime,jdbcType=DATE} ...

胖墩的IT博客 2万+

MyBatis学习(一)——SQL语句中符号的转义(SQL不兼容问题)

昨天等大朋友下班,然后去他工位上找他发现他和同事在看代码,我说下班了,然后他说还有一点问题(他们使用的是mybatis框架),让我看看遇没遇到过,经过大朋友的几番演示,我隐隐约约的好像知道是什么问题,百度查了一下证实自己的猜测,果然是转义字符的问题,原来数据库所使用的引号和mybatis不一样!问题解决之后愉快的下班。今天做一下小总结,方便以后自己看一下。 我们在使用Mybatis的时候,大致由...

2244

Mybatis转义字符

Mybatis转义字符 解决Mybatis的Tag name expected的问题 mapper文件中写sql语句时提示Tag name expected,找到原因是因为xml不识别<号需要用特定转义符来表示<号。 在 XML 中,有 5 个预定义的实体引用: 符号 转义符 含义 < &lt; 小于 > &gt; 大于 & &amp; 与 ’ &apos; 单引号 " &quot; 双引号 需要注意

qq_42216517的博客 332

mapper xml中 <和>的写法

一些符号在xml中有其特殊的含义,如果不加以区分,机器在解析的时候就会产生歧义,导致无法解析报错,因此在mybatis的mapper xml文件中写sql语句的时候 要作特殊处理。[CDATA[sql语句]]>符号进行说明,告诉解析器其中的 “sql语句”部分不进行解析,按原样输出即可。用了转义字符把 > 和 < 替换掉,机器就能正常识别了。

liqinglonguo的博客 1597

在xml文件中的SQL的大于小于号的书写方式

在mapper.xml文件中 “<=” 与 “<” 与 “>=” 与 “>” 的书写方式 Mybatis中的sql语句中的“<”和“>”号要用转义字符“&lt;”和”&gt;“,不能直接写"<“或”>",否则会报错! 示例: 小于➡"&lt;“➡”<" 大于➡"&gt;“➡”>" 小于等于➡"&lt;=“➡”<=" 大于等于➡"&gt;=“➡”>=" ...

羽裳醉月的博客 2959

Mapper(XML)文件不识别大于号 小于号

由于Mapper 文件是xml 文件  xml文件的元素标签 都是以 "" 结尾 所以 mapper的sql语句中的大于小于号 就必须用转义字符了。 原符号 >= & ' " 替换符号 < <= > >= & &apos; "

pure_light's Blog 2506

分享一个关于mybatis中mapper.xml的一个与sql的解析问题

即在mapper.xml文件中,如果你的sql带了<或>的话,这时候xml,会自动将他们解析成标签的开始和结束。这时候就要用转义字符。

zuse_Uzi的博客 117

Mybatis的mapper文件中涉及大于号小于号等特殊符号使用

什么是 MyBatis? MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。 关于mybati...

刘大辉的博客 6975

MyBatis中xml文件的大于号小于号等特殊字符怎么表示

xml文件中是不识别<,>等,会将xml本身的元素命名搞混,得出无法解析。 而mapper.xml虽然是mybatis框架的产物,但是不要忘记它本身只是一个xml文件而已,mybatis并没有将其进行优化,也很难进行优化。 可以使用转义字符把大于号和小于号这种直接替换掉; select* from table a where a.id >=10怎么表示,那么问题来啦 xml转义可...

IT_Octopus的博客 1944

在Mybatis的mapper.xml文件中特殊符号的处理

在Mybatis的mapper.xml文件中特殊符号的处理

weixin_44384605的博客 1389

mybatis的xml文件的特殊转义字符用CDATA标签处理

mybatis的xml文件的特殊转义字符使用&lt;![CDATA[ ... ]]&gt;处理含义注意参考文章 含义 在mapper.xml中,sql中的&lt;、&gt;、&lt;=等特殊符号不想被xml转义, 所以在当使用到这类符号时需要用&lt;[!CDATA[ … ]]&gt;进行特殊处理。 注意 在使用&lt;[!CDATA[ … ]]&gt;的时候尽量控制在一个标签内部,范围不宜过大。...

随缘同学的博客 634
上一篇: Oracle数据库,逗号分割字符串
下一篇: 利用zxing.jar在线生成二维码
yuhenewbie
博客等级 码龄10年 5粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值