MyBatis保存完整日期的解决方法

在用mybatis时,对mysql数据库是datatime字段添加值是,发现添加成功后查看数据库字段值是,只有年月日有值,时分秒则为0来表示的,更改为java.sql.date,time等也不行,如果将mybatis的映射xml的jdbcType="DATE"改为="TIME",会报异常: 

1 com.mysql.jdbc.MysqlDataTruncation: Data truncation:xxxxx

解决方法如下:

1 对于mybatis操作Date/Time/DateTime,总结如下:  
2 将pojo的属性类型设置为java.sql.Date(或java.sql.Time, java.sql.Timestamp),此时会严格遵循这三种类型的语义。但此方法因存在前文中提到的性能问题,在JDK1.6以前的JDK版本中能少使用就少使用。  
3 如果你想在pojo中使用java.util.Date, 则要注意:  
4 完整的日期时间,要确保jdbcType为空,或为DATE,TIME以外的值  
5 只需要时间,要指定jdbcType=”TIME”  
6 只需要日期,要指定jdbcType=”DATE” 

于是将映射的XML文件里的,jdbcType="DATE"这段代码清了就可以了。

参考:mybatis保存完整日期的方法

原文地址:https://www.cnblogs.com/warehouse/p/6799507.html