Mtbatis传入Date格式异常 Error querying database.

今天在写项目的时候,涉及到一个时间格式,由前端传入,格式为yyyy-MM-dd HH-mm-ss ,但是传入的时候服务器报了500,Mapper开发是用的xml进行开发,类型是
看了一下控制台
## Error querying database.  Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String
刚开始是以为前端传入的格式出错,于是自己又进行formaDate一次,发现也不可以,还是保同样的错.
我仔细看了自己的xml,发现在调用的时候也进行传入Date类型的数据,而且是同一个数据,竟然没有报错,我隐隐约约感觉到是xml在某个地方有些问题.于是我翻看的xml语句

order_time = #{orderTime},
发现这里是和唯一不同的地方,就是加上了动态sql标签,
于是我去了判断,发现莫名奇妙的好了,我想了一下,我们还是需要动态判断非空啊,再仔细思考一下,前端传入的是String类型,去和null对比,应该没什么事情,于是我先加上了

order_time = #{orderTime},
发现可以用,并没有报错,于是我单独加上

order_time = #{orderTime},
发现报错了,找到错误原因,就去查了一下,原来是mybatis对于时间参数进行比较时的一个bug. 如果拿传入的时间类型参数与空字符串''进行对比判断则会引发异常. 所以在上面的代码中去该该判断, 只保留非空判断就正常了

你可能感兴趣的:(java)