mybatis异常invalid comparison: java.util.Date and java.lang.String

来源:互联网 发布:mysql select count 编辑:程序博客网 时间:2024/06/07 14:55

mybatis使用xml动态sql时比较时间遇到的异常

第一种

<if test="cTime != null and cTime !='' " >    c_time = #{cTime}</if>

修改为

<if test="cTime != null>    c_time = #{cTime}</if>

网上说这是mybatis3.3.0的一个bug,时间类型与空字符串比较会引发异常。

经过测试,并且不与空字符串比较,即使传入空字符串,也不会进入if test报错。

所以加上and cTime !=''这个多此一举。

第二种

<if test="cTime != null">    c_time = date(#{cTime,jdbcType=TIMESTAMP})  </if>
to_date(#{CREATE_DATE},'YYYY/MM/DD HH24:mi:ss')

这两种方式个人在数据库中只用date执行过,并且需要前后都加上date(c_time)= date(#{cTime,jdbcType=TIMESTAMP})

以上,其实比较麻烦,xml支持直接比较时间的

推荐

<if test="cTime != null">    c_time = #{cTime} </if>

 

阅读全文
0 0
原创粉丝点击