查询日期报错问题,invalid comparison: java.util.Date and java.lang.String

为 ABAP BSP 与 ICF 量身打造的错误页实践:从 CX_ROOT 到 SICF 的端到端落地指南 摘要 本文系统讲解SAP ABAP平台中BSP与ICF层的错误页定制方法。在BSP层,通过标记错误页属性和绑定ERROR_OBJECT异常对象,实现友好的错误展示与日志记录。ICF层通过SICF事务码统一配置错误页、登录与登出逻辑,支持服务树继承。文章包含可直接落地的代码示例,并针对现代Fiori架构给出演进建议,帮助开发者提升用户体验与系统安全性。 阅读详情

早上写了一个接口,按照时间段查询数据库结果的,然后各种错误,一开始写sql查询用的If test,Sql如图所示

<select id="findTrail" resultType="Trail" parameterType="Dog">
		select *
		from trail where 1=1


		<if test="date11 != null and date11 != ''">
			and time&gt;=#{date11}
		</if>
		<if test="date22 != null and date22 != ''">
			and time&lt;=#{date22}
		</if>
		and iot=#{iot} and
		dwfs=#{dwfs}
</select>

然后调用接口进行查询,发现没有传值的时候,date11和date22为空的时候可以查到数据,但是传入日期之后就查不到了,然后报错invalid comparison: java.util.Date and java.lang.String

Exception in thread "main" org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String
### Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String
	at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:122)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:113)
	at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:122)
	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:64)
	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:53)
	at com.sun.proxy.$Proxy0.selectByCreateTime(Unknown Source)
	at mybatis.Test.buyerInfoTimeTest(Test.java:53)
	at mybatis.Test.main(Test.java:39)
Caused by: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String
	at org.apache.ibatis.ognl.OgnlOps.compareWithConversion(OgnlOps.java:92)
	at org.apache.ibatis.ognl.OgnlOps.isEqual(OgnlOps.java:142)
	at org.apache.ibatis.ognl.OgnlOps.equal(OgnlOps.java:794)
	at org.apache.ibatis.ognl.ASTNotEq.getValueBody(ASTNotEq.java:53)
	at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
	at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)
	at org.apache.ibatis.ognl.ASTAnd.getValueBody(ASTAnd.java:61)
	at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
	at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)
	at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:494)
	at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:458)
	at org.apache.ibatis.scripting.xmltags.OgnlCache.getValue(OgnlCache.java:44)
	at org.apache.ibatis.scripting.xmltags.ExpressionEvaluator.evaluateBoolean(ExpressionEvaluator.java:32)
	at org.apache.ibatis.scripting.xmltags.IfSqlNode.apply(IfSqlNode.java:34)
	at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:33)
	at org.apache.ibatis.scripting.xmltags.TrimSqlNode.apply(TrimSqlNode.java:55)
	at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:33)
	at org.apache.ibatis.scripting.xmltags.DynamicSqlSource.getBoundSql(DynamicSqlSource.java:41)
	at org.apache.ibatis.mapping.MappedStatement.getBoundSql(MappedStatement.java:280)
	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:80)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:120)
	... 7 more

原来这是mybatis中对于时间参数进行比较时的一个bug. 如果拿传入的时间类型参数与空字符串''进行对比判断则会引发异常. 所以在上面的代码中去该该判断, 只保留非空判断就正常了

然后改为

<select id="findTrail" resultType="Trail" parameterType="Dog">
		select *
		from trail where 1=1


		<if test="date11 != null">
			and time&gt;=#{date11}
		</if>
		<if test="date22 != null">
			and time&lt;=#{date22}
		</if>
		and iot=#{iot} and
		dwfs=#{dwfs}
</select>

只是把后面那个“”给去掉了而已,然后就可以访问正常了

Autodesk Revit软件二次开发:Revit二次开发中的插件设计与实现 在 Revit 中,族是构成建筑模型的基本单元,可以是门窗、家具等。通过自定义族,可以创建符合特定需求的建筑构件。参数化设计允许族的尺寸、形状等属性根据参数变化而变化。使用 Revit API 创建自定义族涉及多个步骤,包括定义族类型、设置参数、创建几何形状等。// 创建族文档// 定义参数Parameter param = family.FamilyManager.AddParameter("Width", BuiltInParameterGroup.PG_LENGTH, "宽度"); 阅读详情

相关推荐

基于Python实现基于遥感指数的水体提取

基于Python实现基于遥感指数的水体提取

gis收藏家的博客 6145

TypeError: Invalid comparison between dtype=datetime64[ns] and str

df[‘日期’].between(‘2023-06-01’, ‘2023-06-31’)

Caiqiudan的博客 887

保姆级教程:RK3588部署yolo目标检测模型

RK3588部署yolo目标检测模型非常详细的保姆级教程

ling913的专栏 5483

invalid comparison: java.util.Date and java.lang.String:date类型的数据不能和string的数据进行比较。

最近碰到一个有意思的错误,这个错误翻译过来是无效的比较,date类型的数据不能和string的数据进行比较。 一开始看到这个问题很纳闷,报错的这个方法只是一个修改的方法,非常简单,也没涉及到比较啥的。 后来终于找到了报错的关键,这个报错的位置是在mapper.xml中。 一般我们在写动态SQL的时候会这样做 <if test="createDate != null and createDate!=''"> create_date=#{createDate}, <

weixin_42962634的博客 6344

从SAR信号到洪涝地图:基于Sentinel-1数据的水体快速提取实战

本文详细介绍了如何利用Sentinel-1 SAR数据快速提取水体信息并生成洪涝地图的实战方法。通过预处理五部曲和SDWI指数计算,结合具体案例展示了SAR技术在洪涝灾害应急监测中的高效性和准确性,为救援决策提供关键支持。

weixin_29201313的博客 461

从“盲控”到“预见”:聊聊永磁同步电机负载观测器(PMSM Load Observer)如何让控制更丝滑

本文深入探讨了永磁同步电机负载观测器(PMSM Load Observer)如何通过前馈补偿和转动惯量辨识技术实现智能抗扰控制。从传统‘盲控’到预见性调节,负载观测器显著减少转速波动和能耗,提升系统响应速度。文章详细解析了观测器算法架构、工程调参技巧及前沿发展趋势,为电机控制领域提供实用解决方案。

weixin_33737774的博客 406

解决错误 “java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String“ 的

在 Java 开发中,有时会遇到错误信息 “java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String”,该错误表示在比较操作中使用了不兼容的数据类型(如 Date 和 String)。本文将介绍如何解决这个错误,确保正确进行数据类型的比较操作。

pleaseprintf的博客 1万+

HFSS - 侧馈矩形微带天线设计与仿真

一、设计指标 中心频率:2.45GHz 介质板厚度:1.6mm 介质板相对介电常数:4.4 二、理论计算 辐射贴片宽度w=c2f(εr+12)−12w=\frac{c}{2 f}\left(\frac{\varepsilon_{r}+1}{2}\right)^{-\frac{1}{2}}w=2fc​(2εr​+1​)−21​ 辐射贴片长度L=cfεe−2ΔLL=\frac{c}{f \sqrt{\varepsilon_{\mathrm{e}}}}-2 \Delta LL=fεe​​c​−2ΔL

MaxWei 1万+

#查询数据库错误。原因:java.lang.IllegalArgumentException:无效比较:java.sql.Date和java.lang.String。

org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: java.lang.IllegalArgumentException: invalid comparison: java.sql.Date and java.lang.String ### Cause: java.lang.IllegalArgumentException: invalid comparison: java.sql.

weixin_43085797的博客 1428

避坑指南:在Linux服务器上用Conda安装antiSMASH 5.2.0(解决Jinja2报错和Matplotlib权限问题)

本文详细介绍了在Linux服务器上使用Conda安装antiSMASH 5.2.0的避坑指南,重点解决了Jinja2报错和Matplotlib权限问题。通过创建专用conda环境、安装指定版本依赖包和配置缓存目录,帮助用户顺利完成antiSMASH的本地部署,适用于批量处理基因组分析任务。

weixin_26911099的博客 314

SAP CPI 和 PO 的区别

SAP CPI适合云集成轻量级的集成需求,并且由于其云架构,具有快速部署低维护高度可扩展的特点。SAP PO更适合本地系统集成复杂的集成场景和高度定制化的需求,并且对于已经有 SAP 基础设施的企业来说,PO 提供了更多的控制和灵活性。选择使用哪个平台通常取决于企业的技术架构、集成需求、预算以及对灵活性和控制的需求。如果企业主要使用 SAP 的本地系统,并且有复杂的集成需求,那么 SAP PO 是一个理想的选择。如果企业更多地依赖云应用,并希望简化集成操作,那么 SAP CPI 更加适合。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1865

invalid comparison:java.sql.Date and java.lang.string

mybatis 3.3.0中对于时间参数进行比较时的一个bug. 如果拿传入的时间类型参数与空字符串''进行对比判断则会引发异常.

如斯,如己 1429

【项目实战】YOLOV5 +实时吸烟目标检测+手把手教学+开源全部

本原创项目长期更新,旨在完成校园异常行为实时精检测,做到集成+N次开发+优化(不止局限于调包)为止,近期将不断更新以下模型+数据+标注文件+教程。关注博主,Star 一下github,一起开始美妙的目标检测之路吧~~ 文章目录本原创项目长期更新,旨在完成校园异常行为实时精检测,做到集成+N次开发+优化(不止局限于调包)为止,近期将不断更新以下模型+数据+标注文件+教程。关注博主,Star 一下github,一起开始美妙的目标检测之路吧~~一、项目展示二、项目资源共享1:训练图片:香烟图片+吸烟手势+烟雾三、

cv君的博客 13万+

MyBatis 报错:invalid comparison: java.util.Date and java.lang.String 的原因及解决方法

问题原因解决方案对Date使用了!= ''判断删除对空字符串的判断,仅保留!= null。

苍煜 991

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

mybatis异常invalid comparison: java.util.Date and java.lang.String

开发中改动mapper文件后需要重新编译发布, 由于工程比较大非常耗时, 所以为方便快速测试干脆写了一个小java工程. 工程中用到的dao, mapper和实体类都是从工程中拷出来的, 数据库也是同一个. 但是遇到一个比较奇怪的问题 实体类中有一个属性 private Date createTime; 对应该属性数据库中定义的是 create_time datetime

wanghailong_qd的专栏 9万+

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

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

Mybatis invalid comparison: java.util.Date and java.lang.String

报错信息 2021-03-31 10:13:25.121 [http-nio-8103-exec-1] ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.mybatis.spring.MyB

Even_Chou_Even的博客 471

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

mybatis中if标签遇到的invalid comparison: java.util.Date and java.lang.String问题

mybatis中if标签遇到的invalid comparison: java.util.Date and java.lang.String问题业务场景遇到的问题解决方法 业务场景 查询数据的更改时间在起止时间段内的数据 数据库中的time字段是datetime类型,实体类中的time属性是Date类型 mybatis中的sql语句: <if test="endTime != null and endTime != ''"> AND a.time <=#{endTime} </i

TroubleMind的博客 379

mybatis查询 报错 invalid comparison: java.util.Date and java.lang.String

报错: 2020-06-04 11:03:59.914 ERROR 6150 --- [nio-8080-exec-6] c.h.g.c.exception.GMExceptionHandler []: nested exception is org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: java.lang.IllegalArgumentException: inv...

小武人生 337

mybatis 异常invalid comparison: java.util.Date and java.lang.String

转载 转载地址

weixin_44253425的博客 393

使用mybtis3.3.0时遇到的两个问题记录invalid comparison: java.util.Date and java.lang.String

mybatis3.3.0遇到的一些坑,invalid comparison: java.util.Date and java.lang.String] with root cause

iwlnner的博客 1005

查询sql 报错Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.

原因出在mybatis上,date类型不能与空字符串对比,所以解决办法就是去掉beginTime!1.idea报错提示,意思是日期类型与String不能对比,否则就报错。从实体类和CO类看日期发现都是Date类型。

qq_44772261的博客 668

Mybatis时间查询 invalid comparison: java.util.Date and java.lang.String

invalid comparison: java.util.Date and java.lang.String 数据库定义datetime类型,前端之间传string类型的date,在mapper中写法如下: <if test="startTime!=null and startTime!=''"> <![CDATA[ and mu.create_time >= #{startTime} ]]> <

weixin_43617546的博客 330
上一篇: Java计算两个经纬度之间的距离公式,外加百度地图高德地图转换,和保留小数
下一篇: Mybatis什么时候用resultMap,什么时候用resultType
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值