mybatis插入date类型_Java使用Mybatis插入Mysql数据库时间跟取出的时间不一致的解决办法...

通过下面的步骤,就可以完全解决java插入mysql数据库时间以后再取出的的时间跟插入时的时间不一致,或者丢失了毫秒数的问题,或者插入数据库前的时间转为Long的值跟取出的时间转为的long值不一致的问题。。

1.类的属性类型

首先需要注意的是,Java中的实体类中的 这个时间属性的类型需要是Timestamp类型,例如:private Timestamp createTime; // 创建时间

除此之外的 java.util.Date 和java.sql.Date均不能达到本文的效果。

这是因为Date类型默认是不带有毫秒的,只有年月日和时分秒,因此,如果你发现插入的 数据库中的时间和再次取出来的时间毫秒数不一致,一般即时这种 问题。

2.数据库表的列类型

Mysql数据库中时间类型有多种:date,time,timestamp,year,datetime,这几种类型,那么真正能跟类中的时间Timestamp对应的列的类型 只有timestamp,因此,我们需要在设计 数据库时,把该列的类型设置为timestamp.例如:`createTime`  datetime NOT NULL;

3.mybatis实体类配置文件中SQL设置

这里是关键的一步,Mybatis中所有的SQL都是在mapping.xml文件中进行的,因此我们还需要修改SQL里的对应的时间的语法,如要在插入的时间属性 后面添加上要添加的属性在Java实体类中对应的属性类型timestamp。例如:

insert into

document_info(docTitle,docAbstract,createTime)

values(#{docTitle},#{docAbstract},#{createTime,jdbcType=TIMESTAMP})

这里的createTime必须写成#{createTime,jdbcType=TIMESTAMP}形式,这是由于如果不写名传入的createTime类型,它默认为Date类型,会丢掉毫秒数。

通过以上步骤,就可以完全解决java插入mysql数据库时间以后再取出的的时间跟插入时的时间不一致,或者丢失了毫秒数的问题。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值