mysql5.6时间问题_mysql5.6版本java插入时间的错误
新電腦無聊搭個SSH玩玩,數據庫用了比較新的mysql5.6,因為oracle啟動占比較多資源,所以一般電腦開機都會開著mysql
其實我早也知道可能會出問題,因為我之前在網上看到過說mysql5.6的時間類型變化比較大
結果搭起環境插入到時間的數據問題就出來,具體報錯信息如下:
=========================================
Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value: '' for column 'createdatetime' at row 1
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2926)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1571)
at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement.java:1124)
at com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPreparedStatement.java:676)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1166)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1082)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1067)
at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_executeUpdate(FilterChainImpl.java:2721)
at com.alibaba.druid.filter.FilterAdapter.preparedStatement_executeUpdate(FilterAdapter.java:1069)
at com.alibaba.druid.filter.FilterEventAdapter
=========================================
上面的報錯信息就看第一行,就知道,時間字段出現問題了
度娘了一下,暫時有兩種方法解決:
方法一:把mysql的驅動jar包更新到最新的版本,本博文發出時間為止,最新的版本為5.1.34,下載地址我就沒啦,我用maven的,
具體配置如下,懂得都懂
mysql
mysql-connector-java
5.1.34
方法二:檢查一下代碼,
如果時間字段加了
@Temporal(TemporalType.TIMESTAMP)
的話,
請改成如下:
@Temporal(TemporalType.TIME)
上面是hibernate的注解,大家應該都知道吧,因為我是用注解的,所以XML的自己看著辦
以上兩種方法,均經過本人親測,都可以成功插入數據的
還有第三種方法,
就是用5.6之前的版本—_—(這不廢話嘛)
呵呵,本文結束
總結
以上是生活随笔為你收集整理的mysql5.6时间问题_mysql5.6版本java插入时间的错误的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dapperpoco mysql_Dap
- 下一篇: mysql手动写的时间_Mysql日期和