【SSH】网上商城——插入时间数据出错

一、前言:

    最近再看郭嘉老师的SSH网上商城视频,本来培养计划上是要求一周之内弄完的,可是对SSH毫不熟知的我弄到现在还是还敲完。因为照着视频敲代码,总是会遇到各种问题,有时解决一个小问题半天时间就过去啦。

    当看到订单模块时候,需要把订单保存到数据库中,我是完全照着视频敲的,本来想着能顺利运行呢,可是却报错啦。ERROR JDBC ExceptionReporter:234-Data truncation:Incorrect datetime value:for column 'ordertime' at row 1。也就是说ordertime插入失败。

二、探索:

    刚开始还以为是自己疏忽在某个地方写错了呢,就用Beyond Compare对比了一下源码,却没有发现存在问题啊,我就懵逼啦,这明明写的都一样,咋我的就不能正常显示,难道是人品问题?

    之后又百度了一番,发现了前人的博客ssh网上商城插入时间数据失败。这篇博客说,可能是Mysql5.6和Mysql5.5对于时间格式的数据有不同的限制。需要把WEB-INF下lib下的MySQL-connector-Java-5.0.4-bin.jar替换为mysql-connector-java-5.1.34-bin.jar就行。

    但是替换jar包之后会遇到别名无法识别的问题,解决方法是在jdbc的url连接字符串最后加上&useOldAlisaMetadataBehavior=true。

    哎呦我去,看来这个版本问题还真是烦人,咋jar包还有这个问题呢。。。

三、尝试:

    不过我感觉更换jar包的方式有些繁琐,想换一种解决方式。于是开始了如下探索。

我怀疑可能是时间格式的问题,于是看数据库中是个的格式是:yyyy-MM-dd HH:mm:ss(年月日时分秒),那么java默认的时间格式是什么?如下图所示,怪不得会出问题呢。

             

发现问题的根源解决起来就非常容易啦,只需要把默认的时间格式改成yyyy-MM-dd HH:mm:ss就好。代码如下:

    

原因已经找出来了,具体在项目中怎么整自己探索吧。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 22
    评论
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值