Java 无法将日期从mysql检索到JDBC中
目前的问题是,我无法从mysql数据库中检索日期对象,到目前为止,无论我尝试什么,我都会得到Java 无法将日期从mysql检索到JDBC中,java,mysql,jdbc,Java,Mysql,Jdbc,目前的问题是,我无法从mysql数据库中检索日期对象,到目前为止,无论我尝试什么,我都会得到 Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException 或 有没有人有办法解决这个问题 我已经试过了,但仍然出现了两个相同的错误,这两个错误都是由日期引起的。如果要从数据库中检索行,请格式化select语句中的日期 SELECT if(colDate = '0000-00-00', curdate(), colDate
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
或
有没有人有办法解决这个问题
我已经试过了,但仍然出现了两个相同的错误,这两个错误都是由日期引起的。如果要从数据库中检索行,请格式化
select
语句中的日期
SELECT if(colDate = '0000-00-00', curdate(), colDate), ....
只需将
CURDATE()
替换为所需的默认日期。出现异常的原因是0000-00-00
不是有效日期。如果要从数据库检索行,请格式化select
语句中的日期
SELECT if(colDate = '0000-00-00', curdate(), colDate), ....
只需将
CURDATE()
替换为所需的默认日期。出现异常的原因是0000-00-00
不是有效日期。'0000-00-00'是无效日期。它不应该存在于您的数据中
因此,您需要:
3的问题是,还有其他无效日期(例如“2012-02-31”)也可能引发异常。祝你好运。'0000-00-00'是无效日期。它不应该存在于您的数据中 因此,您需要:
3的问题是,还有其他无效日期(例如“2012-02-31”)也可能引发异常。祝你好运。除了其他人的回答(包括存储无效日期不是一个好主意的非常好的建议)之外,你还可以指示JDBC驱动程序以不同的方式处理这些无效日期: 发件人: 默认情况下,当遇到这些值时,Connector/J 3.1会引发异常,因为根据JDBC和SQL标准,这是最正确的行为。可以使用zeroDateTimeBehavior配置属性修改此行为。允许值为:
-异常(默认值),它抛出一个SQLState为S1009的SQLException。
-convertToNull,返回NULL而不是日期。
-舍入,将日期舍入到最接近的值0001-01-01 我建议使用
convertToNull
有关如何指定配置属性的说明,请参阅。除了其他人的回答(包括存储无效日期不是一个好主意的非常好的建议)之外,您还可以指示JDBC驱动程序以不同的方式处理这些无效日期: 发件人: 默认情况下,当遇到这些值时,Connector/J 3.1会引发异常,因为根据JDBC和SQL标准,这是最正确的行为。可以使用zeroDateTimeBehavior配置属性修改此行为。允许值为:
-异常(默认值),它抛出一个SQLState为S1009的SQLException。
-convertToNull,返回NULL而不是日期。
-舍入,将日期舍入到最接近的值0001-01-01 我建议使用
convertToNull
有关如何指定配置属性的说明,请参阅。数据不应无效,尽管我使用的测试数据强制使用默认日期。数据不应无效,尽管我使用的测试数据强制使用默认日期