码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Mybatis日期检索格式报错


    在这里插入图片描述

    问题复现

    org.mybatis.spring.MyBatisSystemException: nested exception is 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
    
    • 1
    • 2
    • 3

    问题分析

    看起来问题是因为查询的时候尝试将数据库中的日期(start_time)与字符串(startTime)进行比较,导致了 “java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String” 错误。

    ——————原Mybatis语句
     <if test="startTime != null and startTime != '' ">and chat.start_time = #{startTime}if>
    
    • 1
    • 2
    ——————修复后Mybatis语句
       <if test="startTime != null "> and DATE_FORMAT(chat.start_time, '%Y-%m-%d')=DATE_FORMAT( #{startTime}, '%Y-%m-%d')if>
    
    • 1
    • 2

    问题反思

    遇到的问题是由于 MyBatis 试图将数据库中的日期(chat.start_time)与字符串(startTime)进行比较,从而导致了 “java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String” 错误。通过将 startTime 参数直接与数据库中的日期进行比较,并使用 DATE_FORMAT 函数将它们都格式化为相同的日期字符串,您成功地解决了此问题。这样的修改是有效的,因为它确保了在比较时两者都具有相同的格式,因此不再引发类型不匹配的异常。现在查询将 chat.start_time 与 startTime 参数的日期字符串进行比较,这是一个可行的方法,前提是这两者的格式匹配。

  • 相关阅读:
    从零开始的 MyBatis 拦截器之旅:实战经验分享
    第十章、python字符串操作与with语句及上下文管理器------字符串的操作:字符串的匹配与查找
    光模块厂家如何提高千兆光模块和万兆光模块的可靠性
    【快速搭建系列】idea快速搭建struts2框架和测试
    导出数据库表信息生成Word文档
    2.9每日一题(定积分的奇偶性以及比较大小)
    mybatis源码编译教程
    是谁还没听过杨氏矩阵~原理和实现代码都已经准备好了
    TinyXML-2介绍
    HTML+CSS+JS大作业:商城网购网站设计——淘宝1页
  • 原文地址:https://blog.csdn.net/weixin_53742691/article/details/132756722
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号