背景 : 公司有个项目外包成php项目,他们把date类型的字段设成了非空,这样他们存进去的数据就成了 0000-00-00 00:00:00,而这种数据格式在java中是不能直接转换的,会报以下错误:java.sql.SQLException:Value '0000-00-00' can not be represented as java.sql.Date
解决方案:
在JDBC连接串中有一项属性:zeroDateTimeBehavior,可以用来配置出现这种情况时的处理策略,该属性有下列三个属性值:
exception:默认值,即抛出SQL state [S1009]. Cannot convert value....的异常;
convertToNull:将日期转换成NULL值;
round:替换成最近的日期即0001-01-01或者是-62135798400000;
插入的时候可以new Date(-62135798400000)
若大家有更好的解决方法的话,希望告诉一下,相互交流