mybatis generator Date类型时间丢失

时间:2023-03-09 15:00:55
mybatis generator Date类型时间丢失

开篇

本次项目换用了Oracle数据库,讲真,真的不好用,不太喜欢,比较喜欢轻量级的MySQL但是不得不说从Oracle的严谨中学到不少好东西。

  <resultMap id="BaseResultMap" type="cn.hlyd.yikang.xyj.domain.DrugRecord" >
<id column="ID" property="id" jdbcType="VARCHAR" />
<result column="TS" property="ts" jdbcType="DATE" />
<result column="USER_ID" property="userId" jdbcType="VARCHAR" />
<result column="DRUG_ID" property="drugId" jdbcType="VARCHAR" />
<result column="RECORD_DATE" property="recordDate" jdbcType="DATE" />
<result column="DR" property="dr" jdbcType="DECIMAL" />
</resultMap>

但是在插入数据的时候 jdbcType="DATE"会造成数据时间精度丢失。

由于jdbcType="DATE",insert, update这个字段的时候,时分秒(HH:mm:ss) 丢失,应该将DATE改为TIMESTAMP

解决方法:

在mybatis-gen.xml 中,修改table属性

 <table tableName="DRUG_RECORD" domainObjectName="DrugRecord">
<columnOverride column="RECORD_DATE" jdbcType="TIMESTAMP"/>
</table>

重新生成Mapper.xml之后即可