在Mysql數(shù)據(jù)庫中使用DATETIME類型來存儲(chǔ)時(shí)間,使用JDBC中讀取這個(gè)字段的時(shí)候,應(yīng)該使用 ResultSet.getTimestamp(),這樣會(huì)得到一個(gè)java.sql.Timestamp類型的數(shù)據(jù)。在這里既不能使用 ResultSet.getDate(),也不能使用ResultSet.getTime(),因?yàn)榍罢卟话╰ime數(shù)據(jù),后者不包括date數(shù)據(jù)。
但是在使用ResultSet.getTimestamp()時(shí)也不是完全安全的,例如,當(dāng)數(shù)據(jù)庫中的TIMESTAMP類型的字段值為 '0000-00-00 00:00:00'時(shí),使用此方法進(jìn)行讀取,會(huì)拋出異常:Cannot convert value '0000-00-00 00:00:00' from column 1 to TIMESTAMP,這是因?yàn)镴DBC不能將'0000-00-00 00:00:00'轉(zhuǎn)化為一個(gè)為一個(gè)java.sql.Timestamp,在Java中,想創(chuàng)建一個(gè)java.util.Date,使其值為 '0000-00-00'也是不可能的,最古老的日期應(yīng)該是'0001-01-01 00:00:00'。
解決方案 1.String url = "jdbc:mysql://localhost:3306/test?relaxAutoCommit=true& zeroDateTimeBehavior=convertToNull ";
注意符號(hào)"&"如果不成功的話,?需要轉(zhuǎn)換成特定的字符,如下表所示,即把"&"轉(zhuǎn)換為&
?
在xml文件中有以下幾類字符要進(jìn)行轉(zhuǎn)義替換:
?
< |
< |
小于號(hào) |
> |
> |
大于號(hào) |
& |
& |
和 |
' |
' |
單引號(hào) |
" |
" |
雙引號(hào) ? |
Cannot convert value '0000-00-00 00:00:00' from column 1 to TIMESTAMP解決辦法
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
