mybatis报Error updating database. Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String

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

<if test="createTime != null and createTime !=‘‘ " >

   date(create_time) = date(#{createTime,jdbcType=TIMESTAMP})

</if>

改为

<if test="createTime != null">

   date(create_time) = date(#{createTime,jdbcType=TIMESTAMP})

</if>

时间: 2024-10-12 20:04:48

mybatis报Error updating database. Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String的相关文章

mybatis的判定时间字段问题 java.lang.IllegalArgumentException: invalid comparison: cn.hutool.core.date.DateTime and java.lang.String

今天听组员说: mybatis在3.30版本及以上判定时间时 <if test="date_time != null and date_time != '' "> date_time, </if> java.lang.IllegalArgumentException: invalid comparison: cn.hutool.core.date.DateTime and java.lang.String 去掉 and date_time != ' ' 就可以正

mybatis报错:java.lang.IllegalArgumentException: invalid comparison: java.util.Arrays$ArrayList and java.lang.String

一开始,我的写法是在java中给这个变量赋值时,直接分割,引号包起来,然后再mybatis中的这个SQL中直接用${}引用,效果是能达到,后被告知这样会有被攻击的可能.便改成:赋值前转成list,然后再mybatis中遍历. 遍历: 一开始里面没用 ,jdbcType=VARCHAR ,报错....jdbcType...,网上找了需要加上这个. 报错: 原因:传入的东西是list,不能用""来比较 修改:那个判断条件" != null " 去掉或者改成size都可

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

原因是在使用<if> 进行条件判断时, 将datetime类型的字段与 ' ' 进行了判断,导致的错误 解决, 只使用  <if test="createTime != null"></if> 做判断就行了 详细可参考: https://blog.csdn.net/wanghailong_qd/article/details/50673144 原文地址:https://www.cnblogs.com/gczmn/p/11880972.html

mybatis部分版本异常invalid comparison: java.util.Date and java.lang.String

严重: Servlet.service() for servlet [spring] in context with path [] threw exception [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: ### E

Error updating database. Cause: java.sql.BatchUpdateException: Field &#39;id&#39; doesn&#39;t have a default value

异常信息 ### Error updating database. Cause: java.sql.BatchUpdateException: Field 'id' doesn't have a default value Query is: INSERT INTO `test`.`order` ( `order`.`code`, `order`.`create_date`, `order`.`status`, ) VALUES ( ?, ?, 原因 数据库表设计时候id没有加自动增长 myba

Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column &#39;username&#39; cannot be null

今天程序中遇见这个错误一直找不到哪里错后来重写了一遍jsp页面才知道 username我写成了name 和po中的代码对应不上导致了这个错误 写代码一定要认真一点啊     好坑啊 Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'username' cannot be null

### Error updating database. Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 必须声明标量变量 &quot;@[email&#160;protected]&quot;。(sql少一个逗号)【??】

(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,[??],?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)### Error updating database. Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 必须声明标量变量 "@[email protected]".### The erro

mybatis中 无效的比较: invalid comparison: java.util.Date and java.lang.String

invalid comparison: java.util.Date and java.lang.String无效的比较 解决: 把mapper.xml中 <if test="XXX !=null and XXX!=''"> XXX!=' ' 去掉就OK 原因: 时间与空字符串比较是无效的的原因是mybatis中对于时间参数进行比较时的一个bug. 如果拿传入的时间类型参数与空字符串''进行对比判断则会引发异常. 所以在上面的代码中去该该判断, 只保留非空判断就正常了 原文

java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp区别和总结 转

java.util.Date.java.sql.Date.java.sql.Time.java.sql.Timestamp区别和总结 java.lang.Object ....|__java.util.Date ..........|__java.sql.Date/java.sql.Timestamp /java.sql.Time [父类]java.util.Date日期格式为:年月日时分秒 [子类]java.sql.Date日期格式为:年月日[只存储日期数据不存储时间数据] [子类]java.