### 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 为空判断类型出错,把日期类型与空串作比较,代码片段如下:


      AND DATE_FORMAT(lrc.create_time,'%Y-%m-%d')  = DATE_FORMAT(#{createTime},'%Y-%m-%d')

其中 createTime 为日期类型,所以上面代码片段出错位置是 【createTime != ''】

即去掉 【and createTime != ''】

 

总结:在myBatis的xml配置文件中写非空判断,其实只需要写 【!=null】就够用了(我使用反向工程自动生成的文件都只有不为null的判断);如果是String类型,判断中可以加【!=''】。

 

------------------------------------------------  分割线  -------------------------------------------------

注:今天在使用vue做项目的时候,前台查询条件(String类型)为空,进入后台断点,我发现入参了 "" 的参数,按常理来说是想查询出不带此条件的数据,结果查询列表为空,所以 String 类型的条件需更改 myBatis 中 if 判断 【!=null】为 【!=null and !=''】(更改日期 :2018-11-02 14:10:00)

 

 

希望能够帮助到你

over

 

 

 

你可能感兴趣的:(MyBatis)