在SQL Workbench J使用JDBC连接MySQL时候,遇到错误:
Zero data value prohibited
即无法查询特定的表;查询其他表OK。遇到错误的表改成在MySQL命令行下查询正常。
错误信息如下截图。
![](https://blogimg.bitipcman.com/wp-content/uploads/2020/08/19111017/jdbc-mysql-error.png)
排查后发现是数据类型的问题,在这张表中,日期为空的时候,默认值是0000-00-00这样的数据类型,这个会导致JDBC报错。
为了解决这个问题,可以通过调整MySQL的表子段类型来解决。如果不希望调整,那么可以在JDBC驱动上增加额外配置来解决。
例如在SQLworkbenchJ上,增加如下参数
?zeroDataTimeBehavior=convertToNull
如下截图。
![](https://blogimg.bitipcman.com/wp-content/uploads/2020/08/19112841/02-1-3.jpg)
增加参数后,查询内容正常。如下截图。
![](https://blogimg.bitipcman.com/wp-content/uploads/2020/08/19112717/03-2-scaled.jpg)
至此问题解决。