最近遇到一个比较奇怪的问题,就是在oracle数据库上,数据类型为Date,在oracle中是可以存储时分秒的精度的。在mybatis上好像只有年月日(需要确认一下)。网上找资料发现可以用xml映射的方式来实现,jdbcType修改为TIMESTAMP。但是因为我用了mybatis-plus。说真的,这个mybatis-plus真的好用。几乎解放了用mybatis写crud的烦恼。虽然是可以用模板根据数据库自动生成crud的xml,但是一旦修改了数据库数据,修改起来还是比较麻烦的,有人把自动生成的crud的mapper.xml和手动生成的mapper.xml区分开来。
mybatis-plus上的@TableField中的el,还是很强大的,可以修改对应的jdbcType。比如@TableField(el="createTime,jdbcType=TIMESTAMP")。好的工具会让人产生就应该这样的感觉,不突兀。
但是还是不能够解决。发现在用insertSelective方法的时候,类型是TIMESTAMP,但是SelectList的时候应该不是TIMESTAMP吧。后来是用 @TableName(value = "DBUSROMS1.DXSTASKFOCUS_O2O",resultMap = "instructResultMap")这样的方法解决的。在mapper.xml中写resultMap的方式来解决。
关于代码自动生成这一块,还需要多研究一样。有基于模板自动生成的方式。