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

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>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值