Open source are the greatest wealth---WANGPENG
posts - 46, comments - 11, trackbacks - 0, articles - 0
   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

[转载]Hibernate映射MySQL "0000-00-00 00:00:00"

Posted on 2009-08-05 16:34 WANGPENG 阅读(794) 评论(0)  编辑  收藏 所属分类: Java
      在Mysql数据库中使用DATETIME类型来存储时间 一般情况下最好在jdbc中使用getTimestamp()方法获取Timestamp格式的时间,然后在转化成Java的

Date.如果遇到要在ResultSet 获取值为"或'0000-00-00 00:00:00'这样的数据时(rs.getDate('gmt_sync')或 rs.getTimestamp('gmt_sync')等类似方

法),就会出现如下:

      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.


      这是因为JDBC不能将'0000-00-00 00:00:00'转化为一个为一个java.sql.Timestamp,在Java中,想创建一个java.util.Date,使其值为 '0000-00-00'也是不可能的,最古老的日期应该是'0001-01-01 00:00:00'.

解决:
      在url中加入zeroDateTimeBehavior=convertToNull 

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

      这样在处理如上数据值时,将会返回null,这样就可以做相应的处理了.


只有注册用户登录后才能发表评论。


网站导航: