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>