【明哥报错簿】之 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 格式