在SQL Workbench J使用JDBC连接MySQL时候,遇到错误:
Zero data value prohibited
即无法查询特定的表;查询其他表OK。遇到错误的表改成在MySQL命令行下查询正常。
错误信息如下截图。
排查后发现是数据类型的问题,在这张表中,日期为空的时候,默认值是0000-00-00这样的数据类型,这个会导致JDBC报错。
为了解决这个问题,可以通过调整MySQL的表子段类型来解决。如果不希望调整,那么可以在JDBC驱动上增加额外配置来解决。
例如在SQLworkbenchJ上,增加如下参数
?zeroDataTimeBehavior=convertToNull
如下截图。
增加参数后,查询内容正常。如下截图。
至此问题解决。