在JDBC中,ConnectionStatementResultSet类型均具有getWarnings()方法,该方法被指定为产生与该类型的对象关联的第一个警告。第二和后续警告(如果存在)被链接到第一个警告(如果甚至存在,如果没有警告,则生成null)。

规范说,与某些类型的对象相关联的警告会在某些操作后清除。例如,读取每个新行时,会清除ResultSet上的警告。
SQLWarning类型是SQLException的子类型。那么是否会通过异常指示警告的存在?如果该异常的运行时类型为SQLWarning,则该异常将被链接到关联的对象?

我想知道的是,它可能是特定于驱动程序的,我如何知道何时应调用getWarnings()并期望得到非null的响应? 换句话说,在JDBC对象上是否存在警告,并且仅在该对象引发异常后,它才可以与getWarnings()一起使用? (那是警告吗?)

如果我的目标是观察每个警告,是否应该在每个JDBC操作之后调用getWarnings()查找警告?

最佳答案



[reference]

坦白地说,我从未发现自己要检查警告。可能是我从未做过任何严肃的事情。

07-26 02:51