Open source are the greatest wealth---WANGPENG
          posts - 46, comments - 11, trackbacks - 0, articles - 0
             :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          [轉(zhuǎn)載]Hibernate映射MySQL "0000-00-00 00:00:00"

          Posted on 2009-08-05 16:34 WANGPENG 閱讀(819) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): Java
                在Mysql數(shù)據(jù)庫(kù)中使用DATETIME類(lèi)型來(lái)存儲(chǔ)時(shí)間 一般情況下最好在jdbc中使用getTimestamp()方法獲取Timestamp格式的時(shí)間,然后在轉(zhuǎn)化成Java的

          Date.如果遇到要在ResultSet 獲取值為"或'0000-00-00 00:00:00'這樣的數(shù)據(jù)時(shí)(rs.getDate('gmt_sync')或 rs.getTimestamp('gmt_sync')等類(lèi)似方

          法),就會(huì)出現(xiàn)如下:

                java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Date;

          或是

                java.sql.SQLException: Cannot convert value '0000-00-00 00:00:00' from column 12 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'.

          解決:
                在url中加入zeroDateTimeBehavior=convertToNull 

                如:jdbc:mysql://10.2.225.97/c2c?zeroDateTimeBehavior=convertToNull

                這樣在處理如上數(shù)據(jù)值時(shí),將會(huì)返回null,這樣就可以做相應(yīng)的處理了.

          主站蜘蛛池模板: 正蓝旗| 五峰| 芮城县| 红安县| 桐庐县| 乌兰县| 县级市| 丰都县| 天镇县| 蓬溪县| 博野县| 浦东新区| 荣成市| 江川县| 安塞县| 宜良县| 赫章县| 龙陵县| 台前县| 上饶县| 凤城市| 酒泉市| 沐川县| 正阳县| 汽车| 上林县| 锦州市| 久治县| 京山县| 台南市| 安仁县| 达尔| 全椒县| 三台县| 新巴尔虎右旗| 栖霞市| 自治县| 庆城县| 永和县| 武义县| 遂川县|