当前位置: 网学 > 编程文档 > JAVA > 正文

java错误提示 can not be represented as java.sql.Timestamp的原因及解决方法

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/08/04

以下是网学网为您推荐的JAVA-java错误提示 can not be represented as java.sql.Timestamp的原因及解决方法,希望本篇文章对您学习有所帮助。

java错误提示Value 0000-00-00 00:00:00 can not be represented as java.sql.Timestamp的原因及解决方法

使用hibernate开发程序的时候,有的时间字段没有必要填写,但是,以后hibernate查询的时候会报出 “java.sql.SQLException: Value '0000-00-00' can not be represented as java.sql.Timestamp” 的错误, 这是因为hibernate认为这个不是一个有效的时间字串。 而有效的日期格式为“ 0001-01-01   00:00:00.0 ” 查看了mysql5的帮助文档对于datetime的解释如下 Datetimes with all-zero components (0000-00-00 ...) — These values can not be represented 关于所有Datetime类型由0组成的数据,这些值不能在java中被可靠的表示reliably in Java. Connector/J 3.0.x always converted them to NULL when being read from a ResultSet. 当这些值正在从ResultSet容器中读取时候,Connector/J 3.0.x 一直把他们转换为NULL值。 Connector/J 3.1 throws an exception by default when these values are encountered as this is the most correct behavior according to the JDBC and SQL standards.依照JDBC和SQL的标准这些值碰到的最正确的处理方式就是在缺省情况下产生异常This behavior can be modified using the zeroDateTimeBehavior configuration property. The allowable values are: JDBC允许用下列的值对zeroDateTimeBehavior 属性来设置这些处理方式, exception (the default), which throws an SQLException with an SQLState of S1009. 设置为exception 异常(缺省)用一个SQLState的s1009错误号来抛出一个异常convertToNull, which returns NULL instead of the date. 设置为convertToNull,用NULL值来代替这个日期类型round, which rounds the date to the nearest closest value which is 0001-01-01. 设置为round,则围绕这个日期最接近的值(0001-01-01)来代替 修改你的jdbc连接 jdbc:mysql://localhost/schoolmis?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号