database. Cause: java.lang.IllegalArgumentException: invalid comparison: java.ut"/>
### Error querying database. Cause: java.lang.IllegalArgumentException: invalid comparison: java.ut
myBatis出错,打印信息如下:
### 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
此处原因为:在myBatis的xml文件中 写的 if 为空判断类型出错,把日期类型与空串作比较,代码片段如下:
<if test="createTime != null and createTime != ''">AND DATE_FORMAT(lrc.create_time,'%Y-%m-%d') = DATE_FORMAT(#{createTime},'%Y-%m-%d')
</if>
其中 createTime 为日期类型,所以上面代码片段出错位置是 【createTime != ''】
即去掉 【and createTime != ''】
总结:在myBatis的xml配置文件中写非空判断,其实只需要写 【!=null】就够用了(我使用反向工程自动生成的文件都只有不为null的判断);如果是String类型,判断中可以加【!=''】。
------------------------------------------------ 分割线 -------------------------------------------------
注:今天在使用vue做项目的时候,前台查询条件(String类型)为空,进入后台断点,我发现入参了 "" 的参数,按常理来说是想查询出不带此条件的数据,结果查询列表为空,所以 String 类型的条件需更改 myBatis 中 if 判断 【!=null】为 【!=null and !=''】(更改日期 :2018-11-02 14:10:00)
希望能够帮助到你
over
更多推荐
### Error querying database. Cause: java.lang.IllegalArgumentException: invalid
发布评论