【明哥报错簿】之 mybatis异常invalid comparison: java.util.Date and java.lang.String
背景:数据库为postgresql,表字段属性为timestamp格式
原因是mybatis 3.3.0中对于时间参数进行比较时的一个bug. 如果拿传入的时间类型参数与空字符串''进行对比判断则会引发异常. 所以在上面的代码中去该该判断, 只保留非空判断就正常了
--------------------------------------------之前的mapper里面进行了非null和非空验证,要去掉非空验证!
前台jsp传入后台的时间为string,在service里将string转为timestamp,
----------------------------------------------------------------------------------------------------------------------------------------------------------------
在mapper里面提取可以用date或者timestamp——#{date,jdbcType=DATE/TIMESTAMP}
查询出的数据在resultMap里进行映射,可以用string的VARCHAR映射
----------------------------------------------------------------------------------------------------------------------------------
实体类也用string定义时间
----------返回前台的string进行格式化显示----------------
---------------------------------------------
插入时:
service里面:
在model实体类里面deliverdate和insdate可以定义为string或者Date,这个不重要,根据jsp的回显需要选择,主要的是在service进行map的put时,要转换为timestamp格式,因为数据库postgresql里面的是表字段是timestamp格式